Excel VBAの繰り返し(For文)
Excel VBAは、Microsoft Excelで使用できるプログラミング言語です。
Excelをより効率的に使用するためのプログラミング言語です。Excelをもっと便利に使いたい人におすすめのプログラミング言語です。Excel VBAを覚えると、Excelの作業が楽になります
具体的に出来ることは以下のとおりです。
- Excelの操作を自動化
- 独自の機能を作成
- データの分析・処理
- レポートの作成
- フォームの作成
- マクロの作成
このExcel VBAというカテゴリーでは、私が学んだExcel VBAのコツやテクニックを紹介していきます。
今回は、Excel VBAで、最も簡単なメッセージボックスを表示させる方法を今回ご紹介します。
Excel VBAの繰り返し(For文)の使い方
Excel VBAのFor文の書き方
同じような処理を繰り返し(ループ)させるには、For文を使います。
For文の基本文ですが、以下の通りです。
Dim i As Long
For i = 開始値 To 終了値
処理
Next i
この基本文の説明をします。
①Dim i As Long
これはFor文の変数の宣言です。
変数名は何でもいいのですが、一般的にはindexの単語の最初の文字のiが使われます。
この変数ですが、カウント変数と呼ばれるもので、For~Nextを繰り返すたびに値が1ずつ加算されていくという特性を持つ変数です。
Longは整数型変数と呼ばれるもので、簡単に言うとこの変数は整数です、という意味です。
繰り返しを行う場合は、1回、2回,3回と整数を使うので、必ず整数型変数であるLongは入力します。
②For i = 開始値 To 終了値
Forと入力し、半角スペースを空けてカウント変数のiを入力します。
その後に=を入力し、繰り返しを始める開始値を入力し、Toを入力後に、繰り返しを終了させるための終了値を入力します。
例えば1~5回繰り返したい場合は、1は開始値で、5は終了値になります。
なのでFor i = 1 To 5と入力すれば、1~5回まで繰り返しを行うという意味になります。
③処理
繰り返しさせたい処理を入力します。
④Next i
Nextと入力後にカウント変数のiと入力します。
カウント変数は、①で説明した通り、Next iに到達すると、For~Nextを繰り返すたびに値が1ずつ加算されていくという特性を持つ変数です。
なのでカウント変数i に1ずつ加算され、終了値になるまで繰り返しを行います。
For i = 1 To 5と入力した場合、1に1が加算され2となり、これが5になるまで繰り返しが行われます。
具体的に例を10回繰り返しを行わせる場合は以下のようになります。
Dim i As Long
For i = 1 To 10
処理
Next i
1から10回繰り返しを行いたい場合は、開始値を1、終了値を10と入力します。
Nextの後のカウント変数iに1プラスされ、カウント変数iが10になるまで繰り返しが行われます。
For文の具体例① メッセージボックスを10回表示させる
具体例として、メッセージボックスを10回繰り返して表示させる場合のコードを以下に書いてみます。
これをF5キーを押して、実行させてください。
以下のようにメッセージボックスが現れます。
それをOKを10回押してください。
するとメッセージボックスが消えます。
つまりメッセージボックスのOKボタンをクリックを10回繰り返すと、メッセージボックスが消える、つまり繰り返しの処理が終了したわけです。
For文の具体例② 表の金額(単価✕数量)の計算を2~21行までの繰り返し
次に、以下の表の金額(単価✕数量)の計算を2~21行までの繰り返しを行ってみます。
VBAのコードは以下の通りです。
ここで注目してほしいのが、以下のコードです。
計算 = Range(“D” & i).Value * Range(“E” & i).Value
Range(“F” & i).Value = 計算
セルの指定が”D” & i、”E” & i 、”F” & iとなっています。D、E、Fという列の後に& iと入力されています。D、E、Fという列のカウント変数iが追加されています。
& iと入力することで、D2がD3、E2がE3,F2がF3と1ずつ加算され、これがD21、E21、F21まで繰り返しが行われます。
実際にF5キーを押して実行すると、以下のように表の金額(単価✕数量)の計算を2~21行まで計算が繰り返し行われます。
理解が難しいと思う方もいらっしゃると思いますので、そういう方は、こういう計算を行う場合は、Range(“D” & i)のように、列の後に& iを付けると暗記してください。何度もこのFor文の練習を行っていけば、理解が出来るようになります。