マクロの開始文言と終了文言

今回の目標

  • マクロの開始文言とルールを知る
  • マクロの終了文言を知る
  • 説明

    マクロの開始文言

    プログラムの開始時には開始文言があり、「Sub ファンクション名」で始めなければなりません。

    Sub ファンクション名
    

    「ファンクション名」は下記の場合以外は、好きなアルファベットや日本語、_(半角アンダーバー)も使えます。

    • 予約語
    • ExcelVBAで使用するため、文法などのため予約している単語のことです。言い換えると「この単語は文法のため、使用しないでね」という単語です。
    • _(半角アンダーバー)以外の記号
    • _(半角アンダーバー)以外の記号、例えば+や-、*は使用することはできません。なお、_(半角アンダーバー)も2文字目以降でないと使用できません。
    • 既に使用しているプロシージャ名
    • 初心者の方はあまり気にしなくてよいです。これは、慣れたら読み直してください。
      Sub プロシージャ名 ~ End Sub(Function プロシージャ名 ~ End Function)の塊をプロシージャと言います。End Subの次の行以降にまた、「Sub プロシージャ名」とすると新たにプロシージャを作成することができますが、その時は既に使用されているプロシージャ名を使用できません。

    ファンクション名として問題ない例を挙げます。

    • main1
    • プログラムスタート
    • Sample_Program

    次に、ファンクション名として問題がある例を挙げます。

    • _main
    • 最初がアンダーバーのため、問題があります。
    • End
    • 予約語のため、問題があります。

    予約語と呼ばれるいくつかの語や使用してはいけない記号をプロシージャ名にしようとすると、下記のエラーが発生します。

    • 予約後を使用してエラー
    • プロシージャ名のエラー画像
    • 使用できない文字を使用してエラー
    • プロシージャ名のエラー画像
    サブプロシージャ名の使用できない文字が選択された状態になり、その行は赤字になっていますね。
    予約語は10種類以上あり、すべて覚えようとしても初心者の方にはハードルが高いと思います。
    上記画像のエラーが表示されたら、予約語か使用不可の文字だから名前を変える必要がある程度の認識で大丈夫でしょう。

    マクロの終了文言

    先がプログラムの開始のための文言でしたが、逆に終了のための文言もあります。
    「End Sub」と入力することでプログラム終了を表します。

    End Sub
    

    先の開始時の文言は覚えてらっしゃいますか?「Sub Function名」です。
    下記画像は正しく入力したときの例です。
    プロシージャ名のエラー画像
    この状態で、キーボードの「Enter」キーを入力してください。
    すると、下記の画像のように「End Sub」が自動的に追記されます。 プロシージャ名のエラー画像
    これで最短のプログラムの完成です。ただ、処理を書いていないため、プログラムを動作させても(動作開始方法は次章にて説明)セルなど何も変化はありません。

    プロシージャとは

    「Sub プロシージャ名」から始まり「End Sub」で終わる1つの塊のことです。 プログラム初心者の方は、まだ深く理解しなくても良いと思います。

    プログラム言語習得者の方なら、「プロシージャとは関数型言語の関数にあたる」と言えば掴みやすいでしょうか。
    C言語やC++では、main関数からプログラムが開始されますが、ExcelVBAでは開始する関数(プロシージャ)の名前は自由です。では「どの関数からスタートするのか」という疑問が湧くと思いますが、それは次章にて説明します。

    確認テスト

    次の問いに答えなさい。

    1. ファンクション名として正しい選択肢を全て挙げよ。
      1. MainFunc
      2. End
      3. えんど
      4. _Sample
      5. Main-Sample
    解答1

    関連リンク

    ページの先頭へ