Word VBAを使っていると、「実行時エラー ’91’オブジェクト変数またはWithブロック変数が設定されていません」というエラーメッセージが表示されることがあります。これは、VBA初心者の方にもよく見られるエラーです。今回は、このエラーの原因と解決方法を、初心者にもわかりやすく解説します。
エラー91とは?
エラー91は、VBAで「Set」ステートメントを使ってオブジェクト変数に有効なオブジェクトを設定していない場合に発生します。具体的には、オブジェクト変数に何も設定せずに、そのオブジェクトのプロパティやメソッドを呼び出そうとすると、このエラーが発生します。
例えば、以下のようなコードがあります。
Dim doc As Document doc.Save
このコードでは、「doc」変数に何も設定していないため、「doc.Save」を実行しようとするとエラー91が発生します。
エラー91の原因と解決方法
エラー91が発生する主な原因と、それぞれの解決方法を紹介します。
原因1Setステートメントを忘れている
オブジェクト変数には、必ず「Set」ステートメントを使って有効なオブジェクトを設定する必要があります。例えば、以下のように修正します。
Dim doc As Document Set doc = ActiveDocument doc.Save
このように、「Set doc = ActiveDocument」とすることで、「doc」変数に現在アクティブな文書を設定し、その後で「doc.Save」を実行することができます。
原因2オブジェクト変数がNothingに設定されている
オブジェクト変数が「Nothing」に設定されている場合、そのオブジェクトを操作しようとするとエラー91が発生します。例えば、以下のようなコードがあります。
Dim doc As Document Set doc = Nothing doc.Save
この場合、「doc」変数は「Nothing」に設定されているため、「doc.Save」を実行するとエラー91が発生します。解決方法としては、「doc」変数に有効なオブジェクトを設定することです。
原因3Withブロックの使い方が間違っている
「With…End With」ブロックを使う際には、必ず「With」ステートメントの中で対象となるオブジェクトを設定する必要があります。例えば、以下のように修正します。
Dim doc As Document
Set doc = ActiveDocument
With doc
.Save
End With
このように、「With doc」とすることで、「doc」変数に設定されたオブジェクトを操作することができます。
エラー91を防ぐためのポイント
エラー91を防ぐためには、以下のポイントに注意しましょう。
- オブジェクト変数には必ず「Set」ステートメントで有効なオブジェクトを設定する。
- オブジェクト変数が「Nothing」に設定されていないか確認する。
- 「With…End With」ブロックを使う際には、必ず「With」ステートメントの中で対象となるオブジェクトを設定する。
よくある質問や疑問
Q1: エラー91が発生した場合、どのようにデバッグすればよいですか?
エラー91が発生した場合、まずはエラーが発生した行を確認しましょう。その行で使用しているオブジェクト変数に「Set」ステートメントで有効なオブジェクトが設定されているか確認してください。また、オブジェクト変数が「Nothing」に設定されていないかも確認しましょう。
Q2: 他のエラーとエラー91を区別する方法はありますか?
エラー91は、オブジェクト変数に有効なオブジェクトが設定されていない場合に発生します。他のエラーと区別するためには、エラーメッセージの内容や発生場所を確認し、オブジェクト変数の設定状況をチェックすることが重要です。
Q3: エラー91を防ぐためのベストプラクティスはありますか?
エラー91を防ぐためには、以下のベストプラクティスを実践しましょう。
- オブジェクト変数を使用する際には、必ず「Set」ステートメントで有効なオブジェクトを設定する。
- オブジェクト変数が「Nothing」に設定されていないか確認する。
- 「With…End With」ブロックを使う際には、必ず「With」ステートメントの中で対象となるオブジェクトを設定する。
- エラーが発生した場合には、デバッグ機能を使って原因を特定する。
まとめ
Word VBAの実行時エラー91は、オブジェクト変数に有効なオブジェクトが設定されていない場合に発生します。エラー91を防ぐためには、オブジェクト変数に必ず「Set」ステートメントで有効なオブジェクトを設定し、オブジェクト変数が「Nothing」に設定されていないか確認することが重要です。これらのポイントに注意し、エラー91を防ぎましょう。
他にも疑問やお悩み事があれば、お気軽にLINEからお声掛けください。



コメント