0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Excel VBA】VBAでよく使うステートメント一覧

Last updated at Posted at 2025-09-09

VBAステートメントとは

VBA(Visual Basic for Applications)では、処理の命令を「ステートメント(Statement)」と呼びます。
セルへの値の代入、条件分岐、繰り返し、エラー処理など、あらゆるVBAの操作はステートメントの組み合わせで構成されています。

この記事では、ジャンル別に使用頻度の高いステートメントを紹介します。

VBAステートメントの基本構文

ステートメント [引数など]

例 :

Dim ws As Worksheet
  • ステートメントは処理を命令する構文です。
  • 関数のように戻り値を返すのではなく、オブジェクトの代入や制御構造など、プログラムの流れを制御するのが目的です。

ステートメントは関数とどう違う?

分類 説明
ステートメント 命令。処理そのもの 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でよく使う関数一覧&基本の使い方

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?