マクロの開始文言と終了文言
今回の目標
説明
マクロの開始文言
プログラムの開始時には開始文言があり、「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では開始する関数(プロシージャ)の名前は自由です。では「どの関数からスタートするのか」という疑問が湧くと思いますが、それは次章にて説明します。
確認テスト
関連リンク
- 次ページ:マクロの実行方法
- 前ページ:VBEの起動と標準モジュールの追加