エクセルVBA

エクセルマクロ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


エクセルのちょっとしたテクニックを紹介します。

処理内容を繰り返しループさせる場合に使います。よく使う構文の一つで処理回数や処理範囲が決まっている場合には有効です。


・構文
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


エクセルのちょっとしたテクニックを紹介します。

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


エクセル
〜ちょっとしたテクニック〜
Add to Google My Yahoo!に追加 ブックマークに追加する
Author

エステリア

エクセルの基本から小技までちょっとしたテクニックを随時提供中

ご案内
●役に立ったと思った方は●

人気blogランキング

1日1回のクリックでこのブログが育ちます。応援よろしくお願いします。
----------------------------------------------
●運営ポリシー●

エクセルのいろんな機能を随時紹介していきます。
トラバ、コメント大歓迎です。内容を確認の上、掲載します。アダルトサイトからのトラバ、コメントはご遠慮下さい。
楽天市場