Home » 電子書籍 » Excel VBAユーザーのためのWord VBA入門 » 実行時エラーのメッセージを比べてみましょう

実行時エラーのメッセージを比べてみましょう

Excel VBAユーザーのためのWord VBA入門(1)』の「chapter 2. Documentは文書を表す」を読んでいただくと、Word VBAのDocuments&Documentは、Excel VBAのWorkbooks&Workbookと似ていると感じると思います。

階層・役割的に似ているDocumentsコレクション&Documentオブジェクトと、Workbooksコレクション&Workbookオブジェクトですが、Word VBAのほうが優れている部分もあります。

コレクションから要素オブジェクトを取得する際に、実行時エラーが発生したときのメッセージは、Word VBAのほうが具体的で意味がわかりやすくなっています。

Itemの引数に「0」を指定した場合

Excel VBAの場合

Excel VBAで、以下のようなコードを実行すると、

With Workbooks.Item(0)
End With

Excel VBA経験者にはお馴染みの
「インデックスが有効範囲にありません。」
実行時エラー 9 が発生します。

Word VBAの場合

Word VBAで似たような以下のコードを実行した場合には、

With Documents.Item(0)
End With

「指定されたコレクションのメンバーは存在しません。」
実行時エラー 5941 が発生します。

Excel VBAよりも、メッセージが具体的です。

Document.Itemメソッドの引数に大きな数値、例えば、
  With Documents.Item(9999)
のような指定を行った場合も同じく
「指定されたコレクションのメンバーは存在しません。」
実行時エラーになります。

Itemの引数に開いていないファイル名を指定した場合

Excel VBAの場合

Excel VBAで、hoge.xlsxが開かれていないときに、以下のコードを実行すると、

With Workbooks.Item("hoge")
End With

やっぱり、
「インデックスが有効範囲にありません。」
実行時エラー 9 が発生します。

Word VBAの場合

Word VBAで似たような以下のコードを実行した場合には、

With Documents.Item("hoge")
End With

「ファイル名が無効です。」
実行時エラー 4160 が発生します。

Excel VBAの
「インデックスが有効範囲にありません。」
よりも
「ファイル名が無効です。」
のほうが、明らかにわかりやすいエラーメッセージです。

自分の手を動かして確認してみてください

このことを知ったからといって、VBAのコードがすぐにバリバリ書けるようになるわけではありません。

しかし、自分の手を実際に動かして、目の前に表示される実行時エラーの意味を味わうことは、理解を深めるのに役立つと私は考えています。

最終更新日時:2021-03-18 15:32

[スポンサードリンク]

Home » 電子書籍 » Excel VBAユーザーのためのWord VBA入門 » 実行時エラーのメッセージを比べてみましょう

「Excel VBAユーザーのためのWord VBA入門」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.