Select Case で条件分岐する方法
スポンサーリンク
Excel VBA で Select Case を使用するサンプルコード集です。一般的なプログラミング言語と異なるのは、各 Case の最後に break が不要という点です。
基本形
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Option Explicit Sub test() Dim intValue As Integer intValue = 3 Select Case intValue Case 1 Debug.Print "1の処理" Case 2 Debug.Print "2の処理" Case 3 Debug.Print "3の処理" Case Else Debug.Print "エラー処理" End Select End Sub |
上記の実行結果は次の通りです。
実行結果 | |
1 | 3の処理 |
Case に複数の値を指定
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Option Explicit Sub test() Dim intValue As Integer intValue = 3 Select Case intValue Case 1, 3, 5 Debug.Print "奇数の処理" Case 2, 4, 6 Debug.Print "偶数の処理" Case Else Debug.Print "エラー処理" End Select End Sub |
上記の実行結果は次の通りです。
実行結果 | |
1 | 奇数の処理 |
Case の値を範囲指定(FromとToの両方を指定)
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Option Explicit Sub test() Dim intValue As Integer intValue = 15 Select Case intValue Case 0 To 9 Debug.Print "0~9の処理" Case 10 To 19 Debug.Print "10~19の処理" Case 20 To 29 Debug.Print "20~29の処理" Case Else Debug.Print "エラー処理" End Select End Sub |
上記の実行結果は次の通りです。
実行結果 | |
1 | 10~19の処理 |
Case の値を範囲指定(FromとToのいずれか一方を指定)
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Option Explicit Sub test() Dim intValue As Integer intValue = 10 Select Case intValue Case Is <= 9 Debug.Print "9以下の処理" Case Is >= 10 Debug.Print "10以上の処理" Case Else Debug.Print "エラー処理" End Select End Sub |
上記の実行結果は次の通りです。
実行結果 | |
1 | 10以上の処理 |
Case で好きに条件文を組み立てる
Select Case True とすると、 Case で好きに条件が組めるようになります。この場合、 Case 内で 2 個以上の変数を演算した結果を判定に使用することもできます。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Option Explicit Sub test() Dim intA As Integer Dim intB As Integer intA = 10 intB = 9 Select Case True Case intA = intB Debug.Print "intAとintBは同じ" Case intA * intB >= 100 Debug.Print "intA×intBは100以上" Case Else Debug.Print "intAとintBは不一致、且つ乗算して100未満" End Select End Sub |
上記の実行結果は次の通りです。
実行結果 | |
1 | intA×intBは100以上 |
スポンサーリンク
- エクセルVBA
- Debug.Print が出力するウインドウを表示する方法
- オブジェクトが空(Nothing)であるかを調べる方法
- R1C1 形式で範囲を指定する方法
- 変数やオブジェクトの型を確認する方法
- yyyymmdd 形式の文字列で現在日付を取得する方法
- 新しいブックを作成して保存する方法
- yyyymmdd 形式の文字列や数値を Date 型に変換する方法
- yyyymmdd 形式の文字列や数値が正しい日付かを判定する方法
- OKボタンだけのダイアログを使用する方法
- Yes/No ダイアログを使用する方法
- Yes/No/Cancel ダイアログを使用する方法
- ダイアログのメッセージを途中で改行する方法
- ソースコードが長い時に途中で改行する方法
- 文字列の一部を置換する方法
- 処理を一時停止する方法
- Select Case で条件分岐する方法
- 半角を全角に変換、全角を半角に変換する方法
- 大文字と小文字を変換する方法
- 「プログラミングによる Visual Basic プロジェクトへのアクセスは信頼性に欠けます」と表示される場合の対処法
- 呼び出すプロシージャを文字列で指定する方法
- ワークシート
- 全てのシートをコピーする方法
- シート数を確認する方法
- シートをコピーして名前を変更する方法
- 指定した名前のシートが存在するかを確認する方法
- シートを削除する方法
- 名前を指定してシートを追加する方法
- 全てのシートをループして処理する方法
- 配列
- 配列のサイズを動的に変更する方法
- For Each で配列の全ての要素を処理する方法
- 2個の配列をマージする方法
- ファイル・フォルダ
- テキストファイルに書き込む方法(Shift-JIS)
- UTF-8など文字コードを指定してテキストファイルに書き込む方法
- ファイルの更新日時を取得する方法
- フォルダ内のファイル数を取得する方法
- フォルダ内のファイルとフォルダの一覧を取得する方法
- ファイルをコピーする方法
- パスからファイル名を取得する方法
- 拡張子無しのファイル名を取得する方法
- ファイルの拡張子を取得する方法
- ファイルの作成日時、更新日時を取得する方法
- VBAを実行中のファイルが格納されたフォルダのパスを取得する方法
- ファイルが存在するかを確認する方法
- Dictionary
- Dictionary の要素数をカウントする方法
- Dictionary の要素を全て削除する方法
- Dictionary の要素を削除する方法
- Dictionary をループして処理する方法
- Dictionary の要素の値を変更する方法
- Dictionary に指定したキーが存在するかを確認する方法
- Dictionary に要素を追加する方法
- Dictionary でキーの大文字と小文字を区別しないようにする方法
- SQL Server接続
- ExcelでADODBの参照設定を行う方法
- DELETE文を実行して削除件数を取得する方法
- SELECT文を実行して抽出結果をシートに出力する方法
- UPDATE文を実行して更新件数を取得する方法
- INSERT文を実行して登録件数を取得する方法
- ストアドプロシージャに引数を渡して実行する方法
- ストアドプロシージャを実行して戻り値を受け取る方法
- プリペアドステートメントで SQLを実行する方法