ホーム > カテゴリ > Excel・VBA >

制御構造(If/For/Select/While/Do)[ExcelのVBA]

制御構造とはプログラムの実行の流れを分岐させたり同じ処理を繰り返しするなどの命令を定義するものです。Visual Basicの条件分岐には「If/Selectステートメント」、繰り返しは「For/While/Doステートメント」があります。

Wikipediaで補足:制御構造

Ifステートメント

Ifステートメントの書式は次の通りです。

<Ifステートメントの書式>
 If (論理式) then
  論理式が真の時の処理を記述
 [ElseIf (論理式) then]
  [論理式が真の時の処理を記述]
 [Else]
  [論理式が偽の時の処理を記述]
 End if

※[]は省略する事が出来ます。

Ifの使用例1

Ifの使用例2

Ifの使用例3

Forステートメント

Forステートメントの書式は次の通りです。

<Forステートメントの書式>
 For 変数 = 初期値 To 終了値
  処理を記述
 Next

Forステートメントは繰り返し処理です。最初に「変数 = 初期値」と初期値が変数に代入されます。処理を繰り返す度に「変数 = 変数+1」と加算されます。そして、変数の値が終了値より大きくなると繰り返し処理を終了します。

Forの使用例1

Forの使用例2

Forステートメント内で「Exit For」を記述するとForの繰り返し処理を抜ける事が出来ます。

Forの使用例3

「変数 = 変数+1」の加算値である「+1」を変更する場合は「Step 加算値」と記述します。

次のコードは「変数 = 変数+2」の例です。

Selectステートメント

Selectステートメントの書式は次の通りです。

<Selectステートメントの書式>
 Select Case 変数
  Case 値
   処理を記述
  [Case 値]
   [処理を記述]
  [Case Else]
   [処理を記述]
 End Select

Selectステートメントは変数の値によって処理を分岐する分岐処理となります。Ifステートメントと似たような機能です。

Selectの使用例

Whileステートメント

Whileステートメントの書式は次の通りです。

<Whileステートメントの書式>
 While (論理式)
   処理を記述
 Wend

Whileステートメントは論理式がTrue(真)の場合は繰り返し処理を継続します。無限ループ(永久継続)にならない様に注意して下さい。

Whileの使用例

Wikipediaで補足:無限ループ

Doステートメント

Doステートメントの書式は二種類あります。

<Do ... Loop Whileの書式>
 Do
  処理を記述
 Loop While (論理式)

<Do While ... Loopの書式>
 Do While (論理式)
  処理を記述
 Loop

Doステートメントは論理式がTrue(真)の場合は繰り返し処理を継続します。無限ループ(永久継続)にならない様に注意して下さい。

※「Do ... Loop While」の場合は必ず一度は「処理」が実行されます。

Doの使用例1(Do ... Loop While)

Doの使用例2(Do While ... Loop)

Doステートメントのブロック内に「Exit Do」を記述すると繰り返しから抜ける事が出来ます。

Visual Basicの基礎

変数/定数/リテラル/データ型/有効範囲
配列/動的配列/構造体/列挙型/エスケープシーケンス
算術演算子/比較演算子/データの型変換
制御構造(If/For/Select/While/Do)
Sub/Functionプロシージャ(手続き/関数)
クラスの作成と使い方
ファイルの操作
エラートラップ
基本のまとめ(上級者用)

エクセル講座のクイックリンク

ホーム 新機能 基本(初級) 基本(中級) 基本(上級) 関数 マクロ VBA TIPS





関連記事



公開日:2015年06月17日 最終更新日:2015年07月06日
記事NO:01049