VBAステートメントとは
VBA(Visual Basic for Applications)では、処理の命令を「ステートメント(Statement)」と呼びます。
セルへの値の代入、条件分岐、繰り返し、エラー処理など、あらゆるVBAの操作はステートメントの組み合わせで構成されています。
この記事では、ジャンル別に使用頻度の高いステートメントを紹介します。
VBAステートメントの基本構文
例 :
- ステートメントは処理を命令する構文です。
- 関数のように戻り値を返すのではなく、オブジェクトの代入や制御構造など、プログラムの流れを制御するのが目的です。
ステートメントは関数とどう違う?
分類 |
説明 |
例 |
ステートメント |
命令。処理そのもの
|
Set ws = Sheets("Sheet1") |
関数 |
処理の結果を返す値として扱う |
result = Left("Excel", 2) |
よく使うステートメント一覧
● ステートメント名をクリックすると、Qiita内の詳細記事に移動します。
● リンクがないステートメントについても、今後順次公開予定です。
● 気になるステートメントがあればフォロー・ストックしていただけると嬉しいです!
代入・宣言ステートメント
ステートメント |
機能 |
使用例 |
Dim |
変数を宣言 |
Dim i As Integer |
Const |
定数を定義 |
Const TAX = 0.1 |
Set |
オブジェクトを代入 |
Set ws = Worksheets("Sheet1") |
ReDim |
配列のサイズを再定義 |
ReDim arr(10) |
条件分岐ステートメント
ステートメント |
機能 |
使用例 |
If ... Then |
条件により処理を分岐 |
If x > 0 Then MsgBox "正" |
ElseIf |
追加条件 |
ElseIf x = 0 Then MsgBox "ゼロ" |
Else |
それ以外の処理 |
Else MsgBox "負の数" |
End If |
If文の終了 |
End If |
Select Case |
多岐分岐 |
Select Case grade |
Case |
Select Case の各条件 |
Case 1 To 3: MsgBox "低" |
繰り返しステートメント
ステートメント |
機能 |
使用例 |
For ... Next |
繰り返し |
For i = 1 To 10 |
For Each ... Next |
コレクションの繰り返し |
For Each c In Range("A1:A5") |
Do While ... Loop |
条件がTrueの間繰り返し |
Do While x < 10 |
Do Until ... Loop |
条件がFalseの間繰り返し |
Do Until IsEmpty(cell) |
Exit For / Do |
ループを抜ける |
If x = 0 Then Exit For |
エラーハンドリングステートメント
ステートメント |
機能 |
使用例 |
On Error Resume Next |
エラーを無視して次の行へ |
On Error Resume Next |
On Error GoTo ラベル |
エラー発生時にラベルへジャンプ |
On Error GoTo ErrorHandler |
Resume |
エラー後の処理再開 |
Resume Next |
Err.Clear |
エラー情報をリセット |
If Err.Number <> 0 Then Err.Clear |
Error |
エラーメッセージを返す |
MsgBox Error(91) |
ファイル・フォルダ操作ステートメント
ステートメント |
機能 |
使用例 |
MkDir |
新しいフォルダを作成 |
MkDir "C:\TestFolder" |
RmDir |
フォルダを削除 |
RmDir "C:\TestFolder" |
Kill |
ファイルを削除 |
Kill "C:\test.txt" |
ChDir |
カレントディレクトリ変更 |
ChDir "C:\MyDir" |
Name |
ファイルの名前変更 |
Name "old.txt" As "new.txt" |
その他制御ステートメント
ステートメント |
機能 |
使用例 |
Exit Sub / Exit Function |
処理を途中で終了 |
If x < 0 Then Exit Sub |
End |
プログラムを強制終了 |
End |
With ... End With |
オブジェクト処理の簡略化 |
With Range("A1") .Value = 1 End With |
GoTo |
任意のラベルへジャンプ |
GoTo 終了処理 |
Call |
プロシージャの呼び出し |
Call MyMacro() |
関連記事
【Excel VBA】VBAでよく使う関数一覧&基本の使い方