05VBAのループその1:はじめてのForNextループ

この記事では、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アカウントを作成して頂くと、登録が ラク です♪

写真素材素材【写真AC】

 

最後までご精読、誠にありがとうございました!!

自己紹介


VBA自作サンプルプログラム集へ戻る

取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ


MOSなどの資格試験対策

投稿者: nekosiestr

プログラミング学習中のロスジェネ(就職氷河期世代)の発達障害者です。 宜しくお願いします。 趣味で写真を撮っています。 プログラミングは、GAS/HTML/CSS/JavaScript/jQuery/PHP、 発達障害は、自閉症スペクトラムASD/ADHD、その他双極性障害やHSP(5人に1人の繊細さん)などの生きづらさを抱えておりますが、それでも楽しく生きて行きたいです!! 写真は、以前はコンパクトデジカメ、現在は、OLYMPUSミラーレス一眼を使っています。

「05VBAのループその1:はじめてのForNextループ」への1件のフィードバック

コメントは受け付けていません。