VBAのコードスニペット

Print Friendly, PDF & Email

ここでは、弊社新入社員研修を受ける受講者のためにVBAのコードスニペットをご紹介します。

なお、スニペットとは“断片”という意味です。

よく使用するコードの慣用句のようなものです。

1.セルの指定方法

1.1 一つのセルの選択

【書式】

Range(“セル”)

【例】

Range("A1").Select

 

1.2 セル範囲の選択

【書式】

Range(“開始セル:終了セル”)

【例】

Range("A1:D6").Select

 

1.3 複数のセル範囲の選択

【書式】

Range(“開始セル1:終了セル1,開始セル2:終了セル2”).Select

のようにカンマで区切る。

【例】

Range("A3:B6,C9:D12").Select

 

1.4 選択セルを次々と変化させる

【書式】

Cells(変数, 列番号)

のようにCellsを使う。

【例】

For i = 1 To 5
     Cells(i, 4) = Cells(i, 2) * Cells(i, 3)
Next

 

1.5 セル範囲を移動させる

【書式】

Range(“範囲”).Offset(行方向に動かすセル数,列方向に動かすセル数)

【例】

Range("A1:B6").Offset(3, 4).Select

 

1.6 シート全体を選択する

【書式】

Cells.Select

2.連続範囲のセルの最後を指定する

【書式】

A列目の最後 Cells(Rows.Count, "A").End(xlUp).Row

1行目の最後 Cells(1, Columns.Count).End(xlToLeft).Column

3.条件分岐

3.1条件に応じて処理をさせたり何もさせなかったりする

【書式】

If 条件 Then
条件を満たした場合の処理
End If

【例】

If Cells(i, 4) = 0 Then
      Cells(i, 4) = "×"
End If

 

3.2 条件に応じて2通りの処理をする

【書式】

If 条件 Then
条件を満たした場合の処理
Else
条件を満たさなかった場合の処理
End If

【例】

 If Cells(i, 4) >= 1.05 Then
    Cells(i, 5) = "S"
 Else
    Cells(i, 5) = "D"
 End If

3.3 条件に応じて3通り(以上)の処理をする

【書式】

If 条件1 Then
条件1を満たした場合の処理
ElseIf 条件2 Then
条件2を満たした場合の処理
Else
条件1,2を満たさなかった場合の処理
End If

【例】

 If Cells(i, 4) >= 1.05 Then
    Cells(i, 5) = "S"
 ElseIf Cells(i, 4) >= 1 Then
    Cells(i, 5) = "A"
 Else
    Cells(i, 5) = "D"
 End If

 

3.4 条件に応じて3通り(以上)の処理をする()

【書式】
Select Case 変数
Case 条件1
処理1
Case 条件2
処理2
(略)
Case Else
上記以外の場合の処理
End Select
 
 
【例】 ※Isは比較演算の時に必要
Select Case Cells(i, 4)
    Case Is >= 1.05
     Cells(i, 5) = "S"
    Case Is >= 1
     Cells(i, 5) = "A"
    Case Is >= 0.95
     Cells(i, 5) = "B"
    Case Is >= 0.9
     Cells(i, 5) = "C"
    Case Else
     Cells(i, 5) = "D"
End Select

 

4.繰り返し

4.1 回数指定ループ(For~Next文)

【書式】

 
Dim 変数 As Integer
  For 変数=初期値 To 最大値
   繰り返し処理
Next 変数
 

【例】

For i = 2 To 11
    Cells(i, 4) = Cells(i, 2) / Cells(i, 3)
Next i

 

4.2 ループ(Do~Loop文)

【書式】

Do While 継続条件式
繰り返し処理
Loop

【例】

Do While Cells(i, 1) <> ""
   If Cells(i, 1) = a Then
        Exit Do
   End If
   i = i + 1
Loop

4.3 必ず一度は処理を実行する後判定ループ

【書式】

Do
繰り返し処理
Loop While 継続条件式

【例】

i = 1
Do
    Worksheets("Sheet1").Cells(i, 1).Value = i
    i = i + 1
Loop While i < 11

 

4.4 オブジェクトをループさせる(For Each In~Next文)

【書式】

For Each 変数 In 対象配列またはコレクション
 繰り返し処理
Next

【例】

Dim R1 As Range
Range("B4:E7").Select
For Each R1 In Selection
      R1.Interior.ColorIndex = 3
Next R1

 

5. 乱数を生成する

5.1 0~1未満の数値をランダムに生成する

【書式】

Rnd()

5.1 最大値と最小値を指定して乱数を生成する

【書式】

Int(Rnd()*(最大値-最小値+1)+最小値)

【例】

For i = 1 To 10
    Cells(i, 1) = Rnd()
    Cells(i, 2) = Int(Rnd() * (10 - 1 + 1) + 1)
Next i

 

以上です。