Selection for my Life

いま、僕にできること。

エクセルVBA ループ処理

エクセルVBA ループ処理

 エクセルVBAで、ループ処理が使えると、とっても、便利です。

  1. For  Next文ループ
  2. Do Loop文ループ

が使えれば、大半の処理はできると思います。

 

ForNext文ループ

ループ用のカウンタを利用して、最初と最後を指定します。

'---------------------------------------------
' for文でループする
' 2013/03/19  hatcy840  
'  
'---------------------------------------------
Col_MaxRow = Range("A1").End(xlDown).Row    ←A1セルから下方向に最終行を検索して取得する

For counter=1 To col_MaxRow
total = total + Range("A" & counter).value ← A1 のセルから最終行までのセルの値を足します
Next counter

Range("B1").Value = total ← B1 に 足し算の結果をセットします。

僕は、基本的にFor文のループ処理を使います。これは、最初と最後を明確に設定できるので、理解しやすいと感じているからです。

 

DoLoop文ループ

最後の条件が満たされるまで、ループ処理を繰り返します。

 

'---------------------------------------------
' Do文でループする
' 2013/03/19  hatcy840  
'  
'---------------------------------------------
Col_MaxRow = Range("A1").End(xlDown).Row    ←A1セルから下方向に最終行を検索して取得する
counter = 1 Do While i <= ColMaxRow total = total + Range("A" & counter).Value
counter = counter + 1 Loop

Range("B1").Value = total ← B1 に 足し算の結果をセットします。

 

 ForNext文と違って、カウンタ変数のインクリメントは自分で記述する必要があります。

 

ループ処理が使えるようになると、大量のデータ処理も楽に行えるようになります。実際の仕事では、処理の中でどのような処理を行うかが重要ですが、多くの場合、どこかにかならずループ処理が入りますので、基本のきの字として、おぼえる必要があります。