VBAでSelectCaseステートメントを使用する方法は?(例)

Excel VBA SelectCaseステートメント

Select Caseは、VBAで複数のifステートメントを書き留める代わりになります。コードに多くの条件がある場合、複数のIfステートメントを使用する必要があり、Ifステートメントが多く提供されると複雑になるため、面倒になる可能性があります。 select caseステートメントでは、基準をさまざまなケースとして定義し、それらに従って結果を示します。

SELECT CASEは、意思決定プロセスに役立ちます。この場合、考えられるさまざまなケースを評価するために1つの式のみが使用されます。開発したコードを実行するために、複数の条件を簡単に分析できます。このcaseステートメントは、式を評価するためのELSEIFの代替ステートメントとして使用されます。これは、Excelに組み込まれている論理関数として分類されます。この機能を使用するには、[開発者]タブに表示されるVisualBasicエディターからコードを入力します。

説明

Select Caseでは、さまざまなステートメントのグループが使用されます。これを効果的に使用するには、次の構文に従う必要があります。これは、Java、C#、PHPなどの他のプログラミング言語で提示されるswitchステートメントに似ています。

 [ケース]テストする式を選択します[ケース]式ステートメントのリスト(ケース1、ケース2、ケース3など...)ケースその他(その他のステートメント)終了選択 

選択されたケースに関連する用語の説明は次のとおりです。

テスト用の式:整数、文字列、ブール値、オブジェクト、文字など、さまざまなタイプのデータを評価する必要があります。

式のリスト: 式は、入力された入力の完全一致を見つけるために大文字と小文字を区別して作成されます。3つ以上の式の場合、これらはコンマ演算子を使用して区切ります。'Is'は、= 、、 =などのExcelの論理演算子を使用して2つの式を比較する際に使用されるキーワードです。

  • 選択の終了:コンストラクターの選択ケース定義を閉じます
  • ステートメント:ステートメントは、ケースを使用して作成され、一致するステートメントがあるかどうかを分析するために評価される式を実行します。
  • Elseステートメント:テスト式がどのcaseステートメントとも一致しない場合にelseステートメントをテストします。

VBA Select Caseステートメントの使用方法は?

VBAが提供するケース選択機能は、通常のワークシートでは実行されません。[開発者]タブの[VisualBasic]オプションを使用する必要があります。ビジネス分野でさまざまな小さなアプリケーションを実行するために開発者モードで作成されたユーザー定義関数とコーディング。

これは、Excelのifステートメントがネストされている状況で使用されます。さまざまなcaseステートメントを処理するのに最適なオプションです。このオプションを効果的に使用するには、次のタスクを実行する必要があります

  • まず、Excelシートにコマンドボタンコントロールを配置してマクロを作成する必要があります。
  • その後、コマンドボタンを右クリックして、[コードの表示]オプションを選択します
  • コマンドボタン関数とendsubの間にコードを配置します
  • コードをデバッグして、構文エラーを特定します。
  • コードをコンパイルしてコンパイルエラーを見つけ、プログラムを正常に実行します
  • 入力値を変更して、一致基準に基づいて異なる結果を観察します
このVBASelect Case Excelテンプレートはここからダウンロードできます– VBA Select CaseExcelテンプレート

例1-単純なSelectCaseステートメント

この例は、一致する値を見つけるための単純な選択ケースを理解するためのものです。

コード:

Private Sub Selcaseexmample()Dim A As Integer A = 20 Select Case A Case 10 MsgBox "最初のケースが一致しました!" ケース20MsgBox「2番目のケースが一致します!」ケース30MsgBox「3番目のケースはSelectCaseに一致します!」ケース40MsgBox「4番目のケースはSelectCaseに一致します!」Case Else MsgBox「一致するケースはありません!」End Select End Sub

結果:

4つのcaseステートメントとcaseelseステートメントを使用して、テスト式をさまざまなケースと比較します。この例では、変数Aが20と一致するため、2番目のケースが一致します。

例2–成績をテストするための「To」キーワード

この例では、selectケースでの「To」キーワードの使用について説明します。

コード:

Private Sub Selcasetoexample()Dim studentmarks As Integer studentmarks = InputBox( "Enter mark between 1 to 100?")Select Case studentmarks Case 1 to 36 MsgBox "Fail!" ケース37から55MsgBox「Cグレード」ケース56から80MsgBox「Bグレード」ケース81から100MsgBox「Aグレード」ケースElseMsgBox「範囲外」EndSelect End Sub

結果:

「To」キーワードは、範囲内のテスト式のセットを定義するのに役立ちます。さまざまなケースを比較することで、学生が取得した成績を見つけるのに役立ちます。プログラムを実行した後、結果を取得するには値を入力する必要があります。

上のスクリーンショットに示すように、出力はメッセージボックスとともに表示されます。

例3–SelectCaseでの「Is」キーワードの使用

この例は、selectcaseでの「Is」キーワードの使用を示しています。

コード:

 Sub CheckNumber() Dim NumInput As Integer NumInput = InputBox("Please enter a number") Select Case NumInput Case Is = 200 MsgBox "You entered a number greater than or equal to 200" End Select End Sub 

‘Is’ keyword helps to find the matched values with only case statements. It compares test expression with given input to produce the output.

The output is obtained as shown in the figure if the entered value is more than 200

Example #4 – With Command Button to Change the Values

The select case also used with the Command button by creating a macro.

Code:

 Sub color() Dim color As String color = Range("A1").Value Select Case color Case "Red", "Green", "Yellow" Range("B1").Value = 1 Case "White", "Black", "Brown" Range("B1").Value = 2 Case "Blue", "Sky Blue" Range("B1").Value = 3 Case Else Range("B1").Value = 4 End Select End Sub 

As shown in the program, the input is taken from the cells of the worksheet. The program is executed after clicking on the command button used from ActiveX controls. In this, a comma separator is used to combine the test expressions.

When the value in the Cell A1 changed, it results in a change in the B1 cell also by running the excel macro through the command button. You can refer to the screenshot given below:-

Example #5 – Check a Number Odd or Even

This example to help to check a number is even or odd.

Code:

 Sub CheckOddEven() CheckValue = InputBox("Enter the Number") Select Case (CheckValue Mod 2) = 0 Case True MsgBox "The number is even" Case False MsgBox "The number is odd" End Select End Sub 

The coding is developed as shown in the screenshot and output is displayed as follows when even number is entered.

Example #6 – Nested Select Case Statements

Nesting is a useful feature of the select case and the way how it is done is shown.

Code:

 Sub TestWeekday() Select Case Weekday(Now) Case 1, 7 Select Case Weekday(Now) Case 1 MsgBox "Today is Sunday" Case Else MsgBox "Today is Saturday" End Select Case Else MsgBox "Today is a Weekday" End Select End Sub 

Here the select case is defined inside another select case to test a day, weekday, or weekend. Except case 1 and 7 remaining all are weekdays (Note: case 1 is Sunday and case 7 is Saturday)

Things to Remember

  • The ‘Is’ keyword using in the statement of [case] and [case else] are not equal.
  • ActiveX control should be used in executing program through a command button taking input and displaying output in the excel sheet range of cells.
  • It is hard to run the programs in VBA if macros are disabled and always enable Macros to get best results.
  • VBA is a case sensitive and input should be entered accurately to get better results.