【Excelマクロ】VBAコンパイルエラー「修正候補:ステートメントの最後」の原因と対処法

スポンサードリンク
VBA

この記事を読んでわかること

  • VBAのコンパイルエラー「修正候補:ステートメントの最後」と表示される原因と対処法がわかる
  • 原因を特定するコツを知れる
  • エラーを繰り返さないための方法を学べる

※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。

-著者情報-
名前:Utatane
VBA(マクロ)歴:3年
Excel使用歴:15年以上
ひとこと:初心者だった当時に戻った気持ちになって解説いたします

スポンサードリンク

VBAコンパイルエラー「修正候補:ステートメントの最後」の原因と対処法

コンパイルエラーステートメントの最後
コンパイルエラーステートメントの最後

この「修正候補:ステートメントの最後」というエラーは、VBAコードの文法に誤りがある場合に発生します。

「ステートメントの最後」と言われると、「は?何のこと?」と思うかもしれませんが、
単純に「コードに誤りがある」と解釈した方がわかりやすいかと思います。

では、どこに誤りがあるのか、主な原因を見ていきましょう。

プロシージャ名に誤りがある

下記のVBAコードを見てください。

Sub test 1()

End Sub

実はこれだけでエラーが発生します。
原因はプロシージャ名(「Sub 」の後ろ)です。

Sub test 1()

プロシージャ名にスペースやイコールなど、使えない文字が入っているとエラーが発生します。

プロシージャ名のエラー

分かりやすいプロシージャ名にするのは基本ですが、記号やスペースは使わないようにしましょう。

本文のイコールやドットなどが抜けている

コード本文でも「修正候補:ステートメントの最後」というエラーが発生する場合があります。
下記のVBAコードを見てください。

Sub test()
   a1 = Range("A1")Value
End Sub

変数である「a1」にA1セルの値を代入しようとしたところですが、
「Value」の前の「.(ドット)」が抜けています。
正しくは下記のコードです。

Sub test()
   a1 = Range("A1").Value
End Sub

このように、ドットやイコールなどが抜けてしまっていた場合でも、「修正候補:ステートメントの最後」というエラーが発生します。

コード内に文字の抜けがないかなど、よく確認しましょう。

スポンサードリンク

原因と特定するコツ

コンパイルエラーは原因が特定しづらいエラーの1つですが、コツをお教えします。
まず、エラーが発生したら、エラー画面の「OK」ボタンをクリックしましょう。

コンパイルエラーステートメントの最後
コンパイルエラーステートメントの最後

すると、原因と思われる箇所が青くなります。

原因と思われる箇所

この青い部分の前に何か抜けが無いか、孤立していないかなど、その行のコードをよく見直してみてください。

プログラミングの知識が身についてくるようになれば、コンパイルエラーは減っていきます。
腐らずがんばりましょう。

スポンサードリンク

エラーを繰り返さないために

このエラーを繰り返さないためには、VBAの知識を身に付けるしかありません。

VBAには、プロパティやメソッドの前には「.(ドット)」が必要など、ある程度決まった法則があります。
この法則を理解し、身に付けることがエラー回避の近道です。

そのために、いろんなエラーを出すことも時には必要です。
矛盾していると思われるかもしれませんが、失敗から学ぶことも非常に多いです。
プログラミングにエラーはつきものなので、そこから法則を学び、同じエラーを繰り返さないようにしましょう。

スポンサードリンク

最後に

VBA(Excelマクロ)のコンパイルエラー「修正候補:ステートメントの最後」について解説いたしました。

当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。

最後までお読みいただき、ありがとうございました。がんばってください!

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