当サイトの記事にはプロモーションが含まれています。

Word VBA 実行時エラー91を初心者向けに解説!原因と解決法をわかりやすく説明

パソコンパソコン・スマホ教室
スポンサーリンク

Word VBAを使っていると、「実行時エラー ’91’オブジェクト変数またはWithブロック変数が設定されていません」というエラーメッセージが表示されることがあります。これは、VBA初心者の方にもよく見られるエラーです。今回は、このエラーの原因と解決方法を、初心者にもわかりやすく解説します。

スポンサーリンク

エラー91とは?

Wordのイメージ

Wordのイメージ

エラー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からお声掛けください。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました