PR

よくあるVBAエラーとその解決法【保存形式・構文・参照エラー】

この記事は約3分で読めます。

VBAを使い始めると、誰しも一度は「なぜか動かない」「エラーが出る」といった壁にぶつかります。ですが、VBAエラーの多くはパターン化されており、基本を押さえておけば簡単に対処できます。

保存できないエラーは「形式」が原因

VBAマクロを含んだファイルは、.xlsm形式で保存しないとマクロが失われます。

Excelの標準保存形式である「.xlsx」ではマクロがサポートされていません。そのため、.xlsxのまま保存すると、せっかく作ったマクロが削除されてしまいます。

VBAコードを書いて「保存」を押した後、ファイルを開いたらマクロが消えていた経験はありませんか? これは「マクロなし形式(.xlsx)」で保存されたためです。

マクロ付きブックは、必ず「Excel マクロ有効ブック(.xlsm)」で保存しましょう。保存時のファイルの種類を確認する癖をつけることが、VBA作業の第一歩です。

コードが動かないのは「構文エラー」の可能性

VBAが動かない場合は、まず「構文エラー(スペルミスや括弧抜け)」を疑いましょう。

構文エラーとは、VBAの文法に合っていないコードのことです。特にIf文のEnd Ifの抜けや、変数名のスペルミスなどは、初心者に多いトラブルです。

たとえば以下のようなコードは構文エラーになります:

If a = 1 Then
    MsgBox "aは1です"
'End If が抜けている

このようなミスは、エディターに表示される「赤い文字」や「エラーメッセージ」で気付けます。

構文エラーはVBAが動作しない原因の筆頭です。[F8]キーでのステップ実行やエラーメッセージを読み解く力を身につけましょう。

実行できないのは「参照設定エラー」かも

外部ライブラリを使っている場合、「参照設定」が正しくないとVBAは動作しません。

たとえば「Microsoft Scripting Runtime」などの外部機能を使う場合は、明示的にそのライブラリを有効にする必要があります。別のPCで開いたときに「参照不可」になっていることもあります。

VBAでFileSystemObjectを使おうとしたのに、実行時にエラーが出る。この場合、「ツール」→「参照設定」で「Microsoft Scripting Runtime」にチェックが入っていない可能性があります。

参照設定エラーは、特に他人から受け取ったファイルで多発します。VBE(VBAエディター)の「ツール」→「参照設定」を必ず確認しましょう。

まとめ:エラーの知識が成長の近道

VBAのエラーは、「保存形式」「構文」「参照設定」という3つのパターンを押さえるだけで、かなりの割合が解決できます。特に初心者のうちは、原因がわからずに挫折しがちですが、エラーは学びの宝庫です。

エラーに対処できるようになると、VBAを使った自動化や業務効率化が一気に現実的になります。焦らず一歩ずつ、エラーと向き合っていきましょう。

コメント

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