エクセルマクロVBA:基本構文
エクセルのちょっとしたテクニックを紹介します。
Do〜Loop構文は、指定した条件に合致している間、または、条件に合致しない間処理を繰り返すというものです。
・構文
指定した条件に合致している間処理を繰り返す場合、
1.Do While 条件文
処理
Loop
または、
2.Do
処理
Loop While 条件文
指定した条件に合致しない間処理を繰り返す場合、
1.Do Until 条件文
処理
Loop
または、
2.Do
処理
Loop Until 条件文
1と2の違いというと、1は条件に合わなければ処理は行いませんが、2では最低1回は処理を行います。どちらを使うかはどのような処理をさせるかによるので、使い分けてください。
以下のサンプルコードを試してみてくださいね。
'***************************************
'ループ処理テスト
'***************************************
Sub Test11()
Dim i As Integer
Dim Num As Integer
i = 0
Num = 1
Do Until Num > 100
Num = Num * 3
i = i + 1
Loop
MsgBox "ループ回数:" & i & "回"
End Sub
Do〜Loop構文は、指定した条件に合致している間、または、条件に合致しない間処理を繰り返すというものです。
・構文
指定した条件に合致している間処理を繰り返す場合、
1.Do While 条件文
処理
Loop
または、
2.Do
処理
Loop While 条件文
指定した条件に合致しない間処理を繰り返す場合、
1.Do Until 条件文
処理
Loop
または、
2.Do
処理
Loop Until 条件文
1と2の違いというと、1は条件に合わなければ処理は行いませんが、2では最低1回は処理を行います。どちらを使うかはどのような処理をさせるかによるので、使い分けてください。
以下のサンプルコードを試してみてくださいね。
'***************************************
'ループ処理テスト
'***************************************
Sub Test11()
Dim i As Integer
Dim Num As Integer
i = 0
Num = 1
Do Until Num > 100
Num = Num * 3
i = i + 1
Loop
MsgBox "ループ回数:" & i & "回"
End Sub
エクセルのちょっとしたテクニックを紹介します。
処理内容を繰り返しループさせる場合に使います。よく使う構文の一つで処理回数や処理範囲が決まっている場合には有効です。
・構文
For 変数 = 変数の開始 To 変数の終わり Step 変数の移動幅
処理1(カウンタ変数を含めた処理を記述します。)
Next 変数
以下のサンプルコードで確認してくださいね。
'************************************
'ループ処理(A列の1行目から20行目に
'1から20まで数字を順に入力していきます)
'************************************
Sub Test5()
Dim i As Integer
For i = 1 To 20
Cells(i, 1).Value = i
Next i
End Sub
処理内容を繰り返しループさせる場合に使います。よく使う構文の一つで処理回数や処理範囲が決まっている場合には有効です。
・構文
For 変数 = 変数の開始 To 変数の終わり Step 変数の移動幅
処理1(カウンタ変数を含めた処理を記述します。)
Next 変数
以下のサンプルコードで確認してくださいね。
'************************************
'ループ処理(A列の1行目から20行目に
'1から20まで数字を順に入力していきます)
'************************************
Sub Test5()
Dim i As Integer
For i = 1 To 20
Cells(i, 1).Value = i
Next i
End Sub
エクセルのちょっとしたテクニックを紹介します。
IF構文とは別に一つの条件式に対して、複数の処理を分岐させることができます。それが、Select Caseステートメントです。この場合、IF構文でもコードは書けますが、Select Caseステートメントの方がすっきりしていて見やすいです。
・構文
Select Case 条件式
Case 条件式の値1
処理1
Case 条件式の値2
処理2
Case Else
処理3
End Select
※条件式が値1の場合、処理1、値2の場合、処理2を行い、それ以外は処理3を行うという意味です。
以下はサンプルコードになります。試してみて下さいね。
Sub Test4()
Dim Num As Integer
Num = InputBox("数字を入力して下さい。")
Select Case Num
Case 1 To 9
MsgBox "1桁"
Case 10 To 99
MsgBox "2桁"
Case 100 To 999
MsgBox "3桁"
Case Else
MsgBox "1〜3桁までの正の整数を入力してくださいね。"
End Select
End Sub
IF構文とは別に一つの条件式に対して、複数の処理を分岐させることができます。それが、Select Caseステートメントです。この場合、IF構文でもコードは書けますが、Select Caseステートメントの方がすっきりしていて見やすいです。
・構文
Select Case 条件式
Case 条件式の値1
処理1
Case 条件式の値2
処理2
Case Else
処理3
End Select
※条件式が値1の場合、処理1、値2の場合、処理2を行い、それ以外は処理3を行うという意味です。
以下はサンプルコードになります。試してみて下さいね。
Sub Test4()
Dim Num As Integer
Num = InputBox("数字を入力して下さい。")
Select Case Num
Case 1 To 9
MsgBox "1桁"
Case 10 To 99
MsgBox "2桁"
Case 100 To 999
MsgBox "3桁"
Case Else
MsgBox "1〜3桁までの正の整数を入力してくださいね。"
End Select
End Sub
エクセルのちょっとしたテクニックを紹介します。
VBAでは、条件によって処理を分岐させることが出来ます。VBAでコードを書くと頻繁に使う構文の一つです。IFを使った処理分岐の構文は以下の通りとなります。
・構文1
If 条件文1 Then
処理1
End If
※条件文1がTrueなら、処理1を行うという意味です。
この場合、一行で書く書くと以下のようになります。
If 条件文1 Then 処理1
・構文2
If 条件文1 Then
処理1
Else
処理2
End If
※条件文1がTrueなら、処理1を行い、それ以外は処理2を行うという意味です。
構文2で条件分岐を増やすには、以下のようになります。
If 条件文1 Then
処理1
ElseIf 条件文2 Then
処理2
ElseIf条件文3 Then
処理3
Else
処理4
End If
以下は、サンプルコードになります。試してみてくださいね。
Sub Test3()
Dim Num As Integer
Num = InputBox("数字を入力して下さい。")
If Num < 20 Then
MsgBox "未成年"
Else
MsgBox "成年"
End If
End Sub
VBAでは、条件によって処理を分岐させることが出来ます。VBAでコードを書くと頻繁に使う構文の一つです。IFを使った処理分岐の構文は以下の通りとなります。
・構文1
If 条件文1 Then
処理1
End If
※条件文1がTrueなら、処理1を行うという意味です。
この場合、一行で書く書くと以下のようになります。
If 条件文1 Then 処理1
・構文2
If 条件文1 Then
処理1
Else
処理2
End If
※条件文1がTrueなら、処理1を行い、それ以外は処理2を行うという意味です。
構文2で条件分岐を増やすには、以下のようになります。
If 条件文1 Then
処理1
ElseIf 条件文2 Then
処理2
ElseIf条件文3 Then
処理3
Else
処理4
End If
以下は、サンプルコードになります。試してみてくださいね。
Sub Test3()
Dim Num As Integer
Num = InputBox("数字を入力して下さい。")
If Num < 20 Then
MsgBox "未成年"
Else
MsgBox "成年"
End If
End Sub