『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で、以下のようなコードを実行すると、
End With
Excel VBA経験者にはお馴染みの
「インデックスが有効範囲にありません。」
実行時エラー 9 が発生します。
Word VBAの場合
Word VBAで似たような以下のコードを実行した場合には、
End With
「指定されたコレクションのメンバーは存在しません。」
実行時エラー 5941 が発生します。
Excel VBAよりも、メッセージが具体的です。
Document.Itemメソッドの引数に大きな数値、例えば、
With Documents.Item(9999)
のような指定を行った場合も同じく
「指定されたコレクションのメンバーは存在しません。」
実行時エラーになります。
Itemの引数に開いていないファイル名を指定した場合
Excel VBAの場合
Excel VBAで、hoge.xlsxが開かれていないときに、以下のコードを実行すると、
End With
やっぱり、
「インデックスが有効範囲にありません。」
実行時エラー 9 が発生します。
Word VBAの場合
Word VBAで似たような以下のコードを実行した場合には、
End With
「ファイル名が無効です。」
実行時エラー 4160 が発生します。
Excel VBAの
「インデックスが有効範囲にありません。」
よりも
「ファイル名が無効です。」
のほうが、明らかにわかりやすいエラーメッセージです。
自分の手を動かして確認してみてください
このことを知ったからといって、VBAのコードがすぐにバリバリ書けるようになるわけではありません。
しかし、自分の手を実際に動かして、目の前に表示される実行時エラーの意味を味わうことは、理解を深めるのに役立つと私は考えています。
最終更新日時:2021-03-18 15:32
Home » 電子書籍 » Excel VBAユーザーのためのWord VBA入門 » 実行時エラーのメッセージを比べてみましょう