技術情報
構文
If ... Then ... Else
条件式が成立したか否かで実行するコードを切り替えるために用います。

(書式)
a) If (条件式) Then {ブロック}
条件式が「真」(0以外の値)の時、ブロックを実行します。
以下のように行を分けて書くこともできます。

If (条件式) Then
  ブロック
End If

b) If (条件式) Then {ブロック1} Else {ブロック2}
条件式が「真」(0以外の値)の時、ブロック1を実行します。
条件式が「偽」(0)の時、ブロック1を実行します。
以下のように行を分けて書くこともできます。

If (条件式) Then
  ブロック1
Else
  ブロック2
End If

c) If (条件式1) Then {ブロック1} Else If (条件式2) Then {ブロック2} Else {ブロック3}
条件式1が「真」(0以外の値)の時、ブロック1を実行します。
条件式1が「偽」(0)で、かつ条件式2が「真」(0以外の値)の時、ブロック2を実行します。
条件式1及び条件式2がともに「偽」(0)の時、ブロック3を実行します。
Else Ifはいくつも指定することができます。また、Elseは必須ではありません。
以下のように行を分けて書くこともできます。

If (条件式1) Then
  ブロック1
Else If (条件式2) Then
  ブロック2
Else
  ブロック3
End If

(例)
' 条件式を満たした場合には、かけ算をします。
If i = 10 Then
  a = a * i
Else
  a = a + i
End If
For ... Next
変数の値が初期値から終了値まで達する(越える)間、ブロックを繰り返します。

(書式)
For (変数)=(初期値) To (終了値) Step (増減数)
  {ブロック}
Next (変数)
変数の値は初期値から増減数分だけ増減されます。
増減数に正の数を指定すると、変数の値を増加させていきます。
増減数に負の数を指定すると、変数の値を減少させていきます。
「Step (増減数)」の部分は省略することができます。
省略時は、変数の値が「+1」ずつ増加されます。
終了値に達する前にForループを抜ける場合には、「Exit For」を記述します。

(例)
' iを0から100まで10刻みで増加させます。
For i = 0 To 100 Step 10
  x = x + i
Next i
For Each ... Next
指定された配列の要素を順に取り出して、取り出し終わるまで、ブロックを繰り返します。

(書式)
For Each (変数) In (配列)
  {ブロック}
Next
配列にはオブジェクトのコレクションなどの複数の要素を持つ配列を指定します。
その要素を変数で1ずつ順番に取り出しながら、ブロックを実行します。
指定された配列のすべての要素を取り出したら、Forループを抜けます。
終了値に達する前にForループを抜ける場合には、「Exit For」を記述します。

(例)
' ワークシートを順に処理します。
For Each ws In Worksheets
  VBA.MsgBox ws.Name
Next
Do ... Loop
条件式を満たしている間、ブロックを繰り返し実行します。

(書式)
a) Do While (条件式)
  {ブロック}
Loop
条件式が「真」の間、ブロックを繰り返します。
まず始めに条件式が評価されます。
条件式が「真」の場合、ブロックを繰り返し、その後、再び条件式を評価します。
途中でDoループを抜ける場合には、「Exit Do」を記述します。

b) Do
  {ブロック}
Loop While (条件式)
条件式が「真」の間、ブロックを繰り返します。
まず始めにブロックが無条件に1回実行されます。
その後、条件式が評価され、条件式が「真」の場合、ブロックを繰り返します。
途中でDoループを抜ける場合には、「Exit Do」を記述します。

c) Do Until (条件式)
  {ブロック}
Loop
条件式が「偽」の間、ブロックを繰り返します。
まず始めに条件式が評価されます。
条件式が「偽」の場合、ブロックを繰り返し、その後、再び条件式を評価します。
途中でDoループを抜ける場合には、「Exit Do」を記述します。

d) Do
  {ブロック}
Loop Until (条件式)
条件式が「偽」の間、ブロックを繰り返します。
まず始めにブロックが無条件に1回実行されます。
その後、条件式が評価され、条件式が「偽」の場合、ブロックを繰り返します。
途中でDoループを抜ける場合には、「Exit Do」を記述します。

(例)
' 条件式を満たしている間、「5」を加算します。
Do While i <= 100
  a = a + 5
  i = i + 1
Loop
Select Case ... End Select
評価式の値によって、処理を振りわけます。

(書式)
Select Case (評価式)
Case (値1)
  {ブロック1}
Case (値2)
  {ブロック2}
...
Case Else
  {ブロックX}
End Select
評価式の値の結果によって処理を分けます。
指定した値に合致した部分のブロックを実行します。
値の指定は必要な分だけ自由に指定することができます。
「Case Else」を用いて、どの値にもならなかった場合の処理も記述することができます。
「Case Else」は省略可能です。

(例)
' 計算式の結果によって処理を分けます。
Select Case IntData
Case 10
  x = x + 10
Case 20
  x = x + 20
Case Else
  x = x + 5
End Select
With ... End With
指定したオブジェクトの指定を省略することができます。
指定したオブジェクトの複数のプロパティを操作する場合などに便利です。

(書式)
With (オブジェクト)
  ...
End With
指定したオブジェクトの記述をEnd Withまでの間、省略することができます。
End Withまでの間はそのオブジェクトを指定する場合は、「.」により表現します。

(例)
' ワークシートのプロパティの値を変更します。
With Sheets("Sheet1")
  .Cells(1,1).Value = 10
  .Name = "シート1"
End With