前回はモジュールの作成を行いました。
【マクロ・VBA知識 2】プログラムを入力するモジュールを作成・削除・名前の変更・イン/エクスポート ► 独学エクセル塾 (dokugakuexcel.com)
これによりプログラムを入力できるようになりましたね。
なので今回は実際にプログラム作成のはじめの一歩、プロシージャ名(プログラム名)の設定を行います。
この作業がないと作成したプログラムも動いてくれません。
発生するエラーの対しての内容と対策も追記してますので是非参考にしてみてください。
それでは見ていきましょう。
■プロシージャ名(プログラム名)の仕組み
まず、プロシージャ名(プログラム名)の仕組みから見ていきましょう。
Sub プログラム名()
(ここにプログラム)
End Sub
Sub プログラム名()
こちらでプログラム名をつけるとともにプログラムの開始を宣言します。
End Sub
End Subを最後につけることでこのプログラムの終わりを宣言します。
つまり[Sub プログラム名()]から[End Sub]までが一つのプログラムになってきます。
省略はできませんので、必ず入力してください。
■プロシージャ名(プログラム名)を設定する
では実際にプロシージャ名(プログラム名)を設定する作業に移ってみましょう。
まずはモジュールを選択してください。
プログラムは右の空白スペースに打ち込んでいきます。
では実際にプロシージャ名(プログラム名)を設定します。
プロシージャ名(プログラム名)は
SUB と () の間に打ち込みます。
「SUB プログラム名 ()」
このような感じですね。
では今回は「サンプル」というプログラム名をつけてみましょう。
このように打ち込んでみました。
見本では「Sub サンプル()」となりますね。
さらに終わりには「End Sub」と入れます。
ちなみにEnd Subはプログラム名を押してカーソルを下、またはEnterを押すと
自動入力されるので入れなくても対応可能です。
このようになりました。
説明として、「Sub サンプル()」 から 「End Sub」 までが
「サンプル」というプログラムになります。
そしてその間の空白には「サンプル」というプログラムがどのような動きをするか
内容を打ち込むようになります。
これでサンプルという名のプログラムの完成です。
プログラムの内容を入れてないので何も動作はしませんが….
■よくあるエラーと対処法・特徴
ではプログラムの構成でのエラーについて見ていきましょう。
・End Sub がありません
こちらは文字通りプログラムの最後に「End Sub」がないのが原因です。
入力したつもりでもスペルが間違っている場合があるので確認してみてください。
・名前が適切ではありません
こちらのエラーの原因は同じモジュール内に同じプログラムが存在しているためです。
1つのモジュールに沢山のプログラムが存在している場合は一度見直してみてください。
ちなみに同じvを使用したい場合は別のモジュールに作成すれば可能です。
・コンパイルエラー:修正候補 識別子
このエラーが表示された方はプロシージャ名(プログラム名)を入力した際に表示されたかと思います。
プログラム名には多少の規制がありますので下記にまとめました。
①プログラム名の先頭に数値がある
こちらは初心者によくあるエラーですね。
原因はプログラム名の先頭に数値を打ち込んでいることです。
例えば「Sub 1プログラム」で名前を付けるとエラーになります。
「1」がプログラム名の先頭にあるのが原因になりますね。
なので、この場合は「Sub プログラム1」のように先頭に数値なければ構いません。
②変数名やプログラムで使用する用語
こちらも知らなければエラーの原因となります。
例えば変数で使用される「Variant」や「String」などの名前で作成している場合や
条件分岐で使用する「If」や繰り返しで使用する「For」などで名前を付けている場合は
エラーになってしまいます。
上記のような用語を名前として使用したい場合は何でもいいので文字・数値を加えてください。
例えば「Variant」であれば「Varianpt123」のように
文字・数値を付け加えるとプログラム名として使用できます。
③使用できない記号が含まれている
プログラム名に使用できない記号も存在します。
「スペース」のほかに「@」「&」「#」などが含まれているとエラーになってしまいます。
私もすべて把握はしていませんが、エラーが発生した場合に
記号を含んでいる場合は取り除いてみてください。
⬛︎公式の説明
わかりやすいように説明したため公式と使用する語句が異なりますが マイクロソフト公式の説明については下記のリンクを参照してください。☟
Sub ステートメント (VBA) | Microsoft Learn
■ まとめ
今回は以上です。
マクロ・VBAのプログラムの第一歩を踏み込みました。
次回は実際にセルに文字や数値を打ち込むプログラムを組んでみます!
ぜひ、参考にしてみてください。
では次回の記事でお会いしましょう!次回の記事はこちらから☟
【マクロVBA知識 4】文字・数値を入力する~マクロVBAプログラム初級編~ ► 独学エクセル塾 (dokugakuexcel.com)