この記事では、VBAで基本的なFor Nextループのサンプルプログラムを掲載しております。
簡単に書きますと、ループとは「繰り返し」のことです。
いつまで繰り返すのか、例えば1から10まで繰り返すのか、1から20までなのか、それとも10から0になるまでなのか、1ずつ増える、2ずつ増やす、1ずつ増減らすなどをFor Nextループを使って設定して行きます。
例えば1から10まで増やして、10になったらループ(繰り返し)を抜けるとします。
その、1から10までを入れる変数として、1番使う機会が多い変数は、恐らく「 i 」という変数です。
慣習的に、ループカウンタには i , j , k 辺りの変数を使います。
1から10まで、iに入っている値が増えていって、10になったらループを抜けて繰り返しが終わります。
それでは実際に作って行きます。
Excelシートに新しいシートを追加して、「はじめてのループ」という名前を付けます。
このシートも、Sheet1などの他のシートも、オブジェクトと言って、Excelの部品です。
下のサンプルでは、2023年7月から使い始めたSNSのThreadsのフォローワーさんを増やして見たいと思います。
フォローワーさんが1人増えた、2人増えた・・・10人増えた、繰り返しを終了、と言う流れになります。
Sub ループ1()
'カウンタ変数iを整数型で宣言
Dim i As Integer
'Excelのワークシート「はじめてのループ」のセルA1をアクティブセルにする
Worksheets("はじめてのループ").Range("A1").Select
'Forループで1から10まで1ずつ増やす
For i = 1 To 10
'アクティブセルに「Threadsのフォローワーさんが i 人増えた!!」と出力
ActiveCell.Value = "Threadsのフォローワーさんが " & i & " 人増えた!!"
'アクティブセルを1つ下に移動する
ActiveCell.Offset(1, 0).Select
'iの繰り返し処理
Next i
End Sub
このプログラムを、ボタンに登録して、ボタンを押して実行します。
ボタンを作る位置は、F列ぐらいにします。
ボタンはExcelシートの 開発タブ から作成してマクロ「ループ1」を登録します。
すると、1から10までの整数をiに代入して、Threadsのフォローワーさんが増えた人数(i人)をセルに出力して、セルを1つ下に移動して繰り返します。
実行すると、こんな感じです。
お疲れ様でした。
ここで一旦、写真で休憩を挟みます。
いたばし花火大会2019です。
先ほどのプログラムでは、Threadsのフォローワーさんが1人ずつ増えました。
今度は、フォローワーさんを2人ずつ増やして、結果として奇数の人数が出力されるようにします。
for i=1 to 10の後に、Step 2と記述します。
先ほどのコードの下に1行開けて書きますので、セルA12をアクティブセルにします。
Sub ループ2()
'カウンタ変数iを整数型で宣言
Dim i As Integer
'Excelのワークシート「はじめてのループ」のセルA12をアクティブセルにする
Worksheets("はじめてのループ").Range("A12").Select
'Forループで1から10まで2ずつ増やす
For i = 1 To 10 Step 2
'アクティブセルに「Threadsのフォローワーさんが i 人増えた!!」と出力
ActiveCell.Value = "Threadsのフォローワーさんが " & i & " 人増えた!!"
'アクティブセルを1つ下に移動する
ActiveCell.Offset(1, 0).Select
'iの繰り返し処理
Next i
End Sub
こんな感じに2つずつ増えていますね。
お疲れ様でした。
ここで一旦、写真で休憩を挟みます。
江ノ電、七里ヶ浜の海です。
では、今度はFor Nextループで1ずつ減らすループを作ります。
考え方としては、Stepの後に「-1ずつ増やす」と言うイメージです。
例として、江ノ電の電車の待ち時間をループで1分減らしていくサンプルを作りました。
「あと i分 で 鎌倉行きの電車が到着します。」と出力します。
先ほどのプログラムの下に出力するので、アクティブセルをA18とします。
また、ループを抜けた後に「電車が到着しました!!」と出力してから、セルを下に1つ移動します。
Sub ループ3()
'カウンタ変数iを整数型で宣言
Dim i As Integer
'Excelのワークシート「はじめてのループ」のセルA18をアクティブセルにする
Worksheets("はじめてのループ").Range("A18").Select
'<<ここからループ>>
'Forループで10から1まで1ずつ減らす
For i = 10 To 1 Step -1
'アクティブセルに「あと i分 で 鎌倉行きの電車が到着します。」と出力
ActiveCell.Value = "あと " & i & " 分で 鎌倉行きの電車が到着します。"
'アクティブセルを1つ下に移動する
ActiveCell.Offset(1, 0).Select
'iの繰り返し処理
Next i
'<<ここから、ループを抜けた後の処理>>
'「電車が到着しました!!」と出力
ActiveCell.Value="電車が到着しました!!”
'セルを1つ下に移動する
ActiveCell.Offset(1,0).Select
End Sub
最後にシートをキレイにして終了致します。
シートをクリアした後、ホームポジションであるセルA1を選択します。
Sub シートのクリア()
'ワークシート「はじめてのループ」をクリアする
Worksheets("はじめてのループ").Cells.Clear
'セルA1を選択する
Range("A1").Select
End Sub
皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・
江ノ電 鎌倉高校前の海と、
江ノ電グッズのタオルです。
お優しい方は、私のThreadsフォローもお願いします!!
https://www.threads.net/@nekosiestr77
やった〜〜〜!!!
あなたのことが、とっても、
大好きです☆*:.。. o(≧▽≦)o .。.:*☆
最後までご精読、誠にありがとうございました!!
仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!
こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。
※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪
最後までご精読、誠にありがとうございました!!
自己紹介
VBA自作サンプルプログラム集へ戻る
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ
MOSなどの資格試験対策
「05VBAのループその1:はじめてのForNextループ」への1件のフィードバック
コメントは受け付けていません。