Excel VBAのエラー修正をChatGPTに頼んだら原因が一発で分かった話

VBAのエラーは初心者の最大の敵

VBAを書いていると、必ず出てくるのがエラー。

  • 実行時エラー

  • コンパイルエラー

  • 原因が分からない謎の停止

今回は、自分では原因が分からなかったエラーをChatGPTにそのまま投げてみました。


エラーが出たVBAコード

Sub ErrorSample()
    Dim ws As Worksheet
    ws.Range("A1").Value = "テスト"
End Sub

実行すると出るエラー

このマクロを実行すると、次のエラーが表示されます。

実行時エラー '91'
オブジェクト変数または With ブロック変数が設定されていません

■■■スポンサーリンク■■■

なぜ初心者がこのエラーで詰まりやすいのか

  • Dim ws As Worksheet と書いたので安心してしまう

  • 「Worksheet型だから使えるはず」と思ってしまう

  • Set が必要だと知らない or 忘れる

見た目では間違っていないように見えるのが最大の罠です。

■■■スポンサーリンク■■■

ChatGPTに投げたプロンプト

エラーメッセージとコードをそのまま貼り付けました。

以下のExcel VBAコードで
「実行時エラー '91'(オブジェクト変数または With ブロック変数が設定されていません)」が発生します。
原因と修正方法を、初心者にも分かるように教えてください。

Sub ErrorSample()
    Dim ws As Worksheet
    ws.Range("A1").Value = "テスト"
End Sub

ポイント

  • エラーメッセージを正確に貼る

  • コード全文を省略しない

  • 「初心者にも分かるように」と明記

ChatGPTから返ってきた回答

このエラーは、オブジェクト変数が正しく設定されていない状態で使用されているときに発生します。

今回のコードでは、次の行が原因です。

ws.Range("A1").Value = "テスト"

エラーの原因

ws は Worksheet 型の変数として宣言されていますが、

Dim ws As Worksheet

この時点では、どのシートを指しているのかがまだ決まっていません

VBAでは、オブジェクト型の変数を使う前に、必ず Set 文を使って、実際のオブジェクトを代入する必要があります。

修正方法

例えば、「Sheet1」を操作したい場合は、次のように Set 文を追加してください。

Sub ErrorSample()
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")
    ws.Range("A1").Value = "テスト"
End Sub

このように Set ws = Worksheets("Sheet1") を追加することで、ws が正しくシートを参照できるようになり、エラーは解消されます。


補足

  • Dim は「箱を用意する」だけ

  • Set は「中身(実体)を入れる」

  • オブジェクト変数は Setしないと使えない

と覚えると分かりやすいです。


修正後のコード(完成形)

Sub ErrorSample()
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")
    ws.Range("A1").Value = "テスト"
End Sub

これだけで、実行時エラー 91 は完全に解消します。


実際に使って分かったこと

  • エラーメッセージをそのまま貼ると精度が高い

  • コード全文を出すと的外れな回答が減る

  • 人に聞くより圧倒的に気が楽

  • 「なぜエラーが起きたか」まで理解できる


まとめ

ChatGPTは Excel VBAのエラー解決に非常に強いです。

  • 初心者にも分かる説明

  • 原因 → 修正方法 → 理由の流れが明確

  • そのまま学習にも使える

VBAのエラーで詰まったら、まずはエラーメッセージとコードをそのままChatGPTに貼る。
これだけで、解決までの時間が大きく短縮されます。

■■■スポンサーリンク■■■

リンク

ChatGPTでExcel VBAマクロを自動生成してみた|初心者でも使える実践手順
Excel VBAのエラー修正をChatGPTに頼んだら原因が一発で分かった話
仕様が曖昧でもOK?ChatGPTにExcel VBAを作らせてみた結果
ChatGPTに作らせたExcel VBAコードは安全?使う前に確認すべきポイント
Excel VBA初心者がChatGPTを使うと挫折しにくくなる理由
CopilotでExcel作業はどこまで効率化できる?実務で使ってみた結果
Copilotに仕事を任せてみた|メール・資料作成はここまで楽になる
Copilotが向いている人・向いていない人を実体験から整理してみた
ChatGPT・Copilot・Geminiに同じ仕事を頼んだら結果が全然違った
結局どれを使えばいい?目的別に生成AIを整理してみた【初心者向け】
初心者が最初にやるべき生成AI活用① ChatGPTで「長文を理解・整理する」読むのがしんどい人ほど効果が出る使い方
初心者が最初にやるべき生成AI活用②ChatGPTに「分からないことをそのまま相談する」使い方・聞き方を気にしない安心感
初心者が最初にやるべき生成AI活用③AIを「自分専用の調べ物係」にする使い方|検索に疲れた人ほど効果が出る
ChatGPTにブログ記事を“赤ペン先生”してもらったら修正力がすごかった話―書くのが苦手な人ほど使ってほしい文章改善―
CopilotでExcel作業手順書を一瞬で作る|引き継ぎ資料が秒で完成した話
Geminiでアイデアが枯れたときの発想復活法|何も思いつかないを脱出する使い方
ChatGPT・Copilot・Geminiをブレスト役で使い分ける実例|発想が加速した方法
CopilotでExcel集計→Word報告書を一気に作る実務フロー― 月次報告が“考えずに終わる”ようになった話 ―
Copilotで会議議事録からToDo管理まで一気にやってみた実務フロー
Geminiで社内資料の画像を作ってみた|伝わらない資料が一瞬で変わった話
ChatGPTに流行りの「今まで私があなたをどう扱ってきたかを画像にして」を頼んでみた
ChatGPTのプロンプトを“自分用”に進化させる方法|頼み方で結果が激変する理由
初心者が最初にやりがちなプロンプトの失敗例と直し方
ChatGPTが急に賢くなる「前提条件」の渡し方-同じ質問なのに答えが変わるのはなぜ?-
プロンプトを毎回書かなくてよくなる“会話の残し方”
ChatGPTに「察してもらえない」と感じた時の原因と対処法|噛み合わない理由を実例で解説
AIに雑に投げても失敗しにくくなる頼み方のコツ|考えずに使っても噛み合う方法
プロンプトが思いつかない人のための“最初の一文”テンプレ集
ChatGPTを“相棒化”する人と、うまく使えない人の決定的な差
生成AIはどこまで使っていい?初心者が最初に知るべき法律の話
AI画像生成は違法?著作権で“やってはいけないこと”実例集
商用利用OK?NG?生成AIの利用規約を初心者向けに噛み砕く
AIで作った文章は誰のもの?著作権の考え方をやさしく解説
「知らなかった」では済まない?生成AIトラブル事例と回避法
ブログ・SNSでAI生成物を使うときの最低限の注意点まとめ
AIに頼りすぎて思考力が落ちた話|便利さの裏で起きたリアル失敗
AIの回答を信じて怒られた話|正しいはずが通用しなかった理由

■■■スポンサーリンク■■■