ループは、最も強力なプログラミング技術の一つです。エクセルVBAのループは、わずか数のコード行とセルの範囲をループすることができます。

単一ループ

あなたは、細胞の1次元の範囲をループする単一のループを使用することができます。

ワークシート上の/ VBAの作成・マクロ#コマンドボタンを[コマンドボタン] `と次のコード行を追加します:`リンクを置き

Dim i As Integer

For i = 1 To 6

Cells(i, 1).Value = 100

Next i

あなたはシート上のコマンドボタンをクリックすると、結果:

Single Loop in Excel VBA

説明のための:次へとの間のコード行を6回実行されます。 I = 1のために、Excel VBAは、次に私は、それが1とIを増加し、ステートメントの背面にジャンプに到達すると、ExcelのVBAは、行1および列1の交点のセルに値100を入力します。 I = 2のため、エクセルVBA等行2列1、の交点のセルに値100に入射

注:それは常にインデント(タブ)の良い練習と次のために単語間のコードです。これは読み、あなたのコードが簡単になります。

ダブルループ

あなたは、セルの2次元範囲をループし、二重ループを使用することができます。

ワークシート上の/ VBAの作成・マクロ#コマンドボタンを[コマンドボタン] `と次のコード行を追加します:`リンクを置き

Dim i As Integer, j As Integer

For i = 1 To 6

For j = 1 To 2

Cells(i, j).Value = 100

Next j

Next i

あなたはシート上のコマンドボタンをクリックすると、結果:

Double Loop in Excel VBA

説明:私は1及びj = = 1の場合、ExcelのVBAのExcel VBAは次Jに到達行1および列1の交点のセルに値100に入り、それは1とJを増大させ、Jステートメントの場合にジャンプして戻ります。 jが1つだけからのExcel VBAは、次のIに到達2に実行されるため、iが1とjを=ため= 2と、Excel VBAは、行1および列2次への交差部にセルに値100に入ると、Excel VBA次にjを無視します、それは1とIを増加し、私の文の場合はバックにジャンプします。 I 2及びj = 1 =ため、ExcelのVBAは

等行2列1、の交点にセルに値100に入ります[トリプルループ]] 3重ループ

あなたは、複数のExcelのワークシート上の2次元の範囲をループするトリプルループを使用することができます。

ワークシート上の/ VBAの作成・マクロ#コマンドボタンを[コマンドボタン] `と次のコード行を追加します:`リンクを置き

Dim c As Integer, i As Integer, j As Integer

For c = 1 To 3

For i = 1 To 6

For j = 1 To 2

Worksheets(c).Cells(i, j).Value = 100

Next j

Next i

Next c

説明:唯一の変更は、二重ループのコードに比べて作ったが、我々は1つの以上のループ、コメントを追加しましたワークシート(c)を追加したことです。細胞の前方にC = 1の最初のシート上の2次元の範囲を得るために、C = 2のための第二シートおよびc = 3のダウンロードのための第3のシートのExcelファイルには、この結果を確認します。

んがループ

以下のための次のループに加え、エクセルVBAの他のループが存在します。例えば、doループしながら。一方で、コードは、DOとの間に配置され、真のですが、ループは、DOの後の部分である限り繰り返されます。

  1. コマンドボタンワークシート上で、次のコード行を追加します。

Dim i As Integer

i = 1

Do While i < 6

Cells(i, 1).Value = 20

i = i + 1

Loop

あなたはシート上のコマンドボタンをクリックすると、結果:

Do While Loop

説明:私は6未満である限り、ExcelのVBAは、(他のプログラミング言語とで)1のエクセルVBAによって行iおよび列1及び増分Iの交点にあるセルにシンボル「=を値20に入ります」という意味になります。それは同じ意味ではありません。私の現在の値を取ると、それに1を追加します。私は言い換えれば1を+になっI + 1つの手段を=私はそう。 I = 1の場合、例えば、私は結果として1 + 1 = 2となる(iは6に等しいときのExcel VBAが停止するためではない6個)、値20をカラムAに5回置かれます。

列Aでいくつかの数字を入力します

Any Number Of Rows

  1. コマンドボタンワークシート上で、次のコード行を追加します。

Dim i As Integer

i = 1

Do While Cells(i, 1).Value <> ""

Cells(i, 2).Value = Cells(i, 1).Value + 10

i = i + 1

Loop

あなたはシート上のコマンドボタンをクリックすると、結果:

Advanced Do While Loop

説明:長い細胞(I、1).Valueのは、(<>手段と等しくない)が空でない限り、エクセルVBA行の交差点I及び列2のセルに値を入力し、値10よりも高いです細胞は(7,1).Valueのが空であるので、私は7に等しい場合、行iおよび列の交点にあるセルに1のExcel VBAが停止します。これは、ワークシート上の任意の行数をループするのに最適な方法です。