【Excel VBAマクロを実行するための初期設定】(3回目)

今回は、VBAを作成後の実行方法について、記載していきたいとおもいます。

前回書いたサンプルコードを元に少しづつ実行していきます。

1. 前回書いたサンプルコード


以下の「サンプル」コードを書いてください。(コピーしても問題ないです)

Sub サンプル()
 
’このマクロは足し算をしています。
 
Dim i As Long, j As Long, a As Long
 
 i = 2
 j = 4
 a = i + j
 
 MsgBox i & vbCrLf & a
 
End Sub

2. 【ブレイクポイント】の使い方

インジケーターを使って、ブレイクポイントを入れていきます。

(インジケーターバーとは赤い枠の部分になります)

2-1. (1)ブレイクポイントの入れ方

ブレイクポイントは、インジケーターをクリックしますが、上記にある「変数」、「コメント」にはブレイクポイントは入れられません。

「Sub」、「End Sub」などに使用できます。

さっそくやっていきたいと思います。

①ブレイクポイントをいれたい場所にインジケーターのカーソルを当てます。


②「左クリック」をすると、茶色丸が現れます。

これがブレイクポイントになります。

2-2. (2)ブレイクポイントの使い方

ブレイクポイントはそこまで実行しますということなので、まず実行をおこなっていきます。

ここから読んだ方もいるかと思いますので、実行方法も合わせて記載していきます。

①VBAの実行「▶」をクリックします。


②実行すると「ブレイクポイント」をいれたところインジケーターが止まっていると思います。

これがブレイクポイントです。


[ブレイクポイントの説明]

ローカルウィンドを確認すると「i」、「j」には値が入っていることがわかります。

「a」はブレイクポイントで停止させているところなので、結果がでるのは次のコードに進んだときになりますので現在の値は、「0」のままになります。


③一度VBAを停止します。

「■」をクリックするとVBAは停止します。


[ブレイクポイントが必要なとき]

先ほどお話したように、ブレイクポイントを入れた一つ前のコードまでローカルウィンドウに値がはいります。

計算や、なにを取得しているときに正しく値を取得しているかどうかの確認を行うためにブレイクポイントをいれます。

また、実行ボタン「▶」をクリックすると「End Sub」までいってしまうので、ループ処理を行っているときや、ちょっとここまでで止めたいという時に必要になります。


1つ、1つ確認するとき、結構重要になってきますのでブレイクポイントは覚えておくといいと思います。

3. 【ボタンを作ってVBAを作成】

ここまで実施したら、ちょっと作ってみましょう。

本当はカレンダーとか作りたいところなのですが、とりあえずボタンを作ってみます。

ボタンを作ってから新規モジュールを作成すると、ボタンから実行できますので便利なのでボタンを作っていきます。


その前にここに記載したものを一度きれいにしたいとおもいます。

3-1. (1)モジュール(VBA)を削除する方法

①「Module1」を選択します。


②「Module1の解放」をクリックします。


③「いいえ」をクリックしてください。


この「Module」を取り出し保存したい場合は、「はい」を選びます。

取り出して保存することはほとんどないと思いますので、「いいえ」で大丈夫です。

ちなみに取り出した場合の拡張子は「×××.bas」になります。

④「標準モジュール」がなくなりました。


3-2. (2)ボタンの作成 

①任意のシートを開きます。


②「開発」タブをクリックします。


③「挿入」をクリックします。


④ボタン「フォームコントール」をクリックします。


⑤マウスでドラッグして長方形を作ります。


⑥「マクロの登録」画面がでます。


⑦マクロ名「サンプル」に変更し、「OK」をクリックします。


⑧「ボタン1」が出力されました。

3-3. (3)VBAを記載

先ほどまで書いていたコードを再度記載します。

Sub サンプル()
 
Dim i As Long, j As Long, a As Long
 
'このマクロは足し算をしています。
 
 i = 2
 j = 4
 a = i + j
 
 MsgBox i & vbCrLf & a
 
End Sub

3-4. (4)ボタンから実行

①ボタンを作成したシートに戻り、ボタンをクリックします。


②「ポップアップ」画面が出力されました。


③「OK」をクリックします


実行することができました。

[補足]

実行したVBAの説明をします。

・Option Explicit:
変数の宣言を強制しています。変数を入れないとエラーがでます。
 
・Sub サンプル() :
今回のVBAはサンプルというものになります。タイトルみたいなものです。
 
・Dim i As Long, j As Long, a As Long:
「i」「j」「a」は変数でLongが数字になります。

・'このマクロは足し算をしています。:
コメントになります。何をするかある程度の行ごとに書いてあげると、他の人が見ても何をしているかわかりやすいです。

 
 i = 2 ←「i」は「2」としています。

 j = 4 ←「j」は「4」としています。

 a = i + j ←「a」は「i」と「j」を足したものなので「6」となります。

 
・MsgBox i & vbCrLf & a:
メッセージボックス(ポップアップ)をだします。


「vbCrLf 」は改行です。

「i」が「2」

改行

「a」が「6」

上記がポップアップに出力されていました。
 
・End Sub:
終わり

3-5. (5)ボタンの名前を変更

①ボタンを右クリックします。


②「テキストの編集」をクリックします。


③カーソルが「ボタン1」に点滅していると思います。


④「サンプル」に変更します。


⑤マウスをボタン以外のところでクリックします。

「サンプル」ボタンができました。

「サンプル」で「Enter」をクリックすると、改行になります。

4. 【最後に】

1つのマクロを実行してみました。

すべての意味が理解できれば、そんなにむずかしくないと思いました。

私は英語が話せませんが、英語の翻訳みたいな感じで、一つ、一つの短い文章を理解していれば後は繋ぎ合わせるだけとなります。

コメントを書いておくことで何をしているか、後になって振り返ってもわかるようになりますので、大事です。


すべて実行していただき簡単だと思っていただけたらと思います。

次回はもう少し詳しく、長い文でマクロを実行していきたいと思います。