目次:
ビデオ: エクセルVBAの使い方講座 中巻 第1章セルの操作【動学.tv】Excel VBA 2024
Select Case構造は、3つ以上のExcel 2016のオプション(ただし、If-Then-Else構造の代わりに2つのオプションを使用することもできます)。
Select Caseの例
Select Caseの構造を使用する例を示します。
Sub ShowDiscount3()Dim Quantity As Long Quant Discount = Double Quantity = InputBox( "Quantity:")Select Case Quantityケース0〜24割引= 0 1ケース25〜49ディスカウント= 0 15ケース50〜74ディスカウント= 2 2ケース=> 75ディスカウント= 0エンド選択MsgBox "割引:"&割引エンドサブ >この例では、Quantity変数が評価されています。ルーチンは、4つの異なるケース(0-24,25-49,50-74、および75以上)をチェックします。
<! --1 - >
大文字小文字のステートメントの後に任意の数のステートメントを続けることができ、大文字小文字が真の場合はすべて実行されます。この例のように1つのステートメントのみを使用する場合は、Caseキーワードと同じ行にコロン(VBA文の区切り文字)を前置してステートメントを置くことができます。これにより、コードがよりコンパクトになり、少し明確になります。Sub ShowDiscount4()薄い数量で長さの薄い割引を2つの数量として= InputBox( "数量を入力:")ケースの数を選択するケース0〜24:割引= 0 1ケース25 To End Sub
VBAがSelect Case構造を実行すると、MsgBoxの "Discount:"およびDiscount End Sub
が選択されます。 VBAが真のケースを見つけたらすぐに構造が終了し、そのケースのステートメントが実行されます。
<! - 2 - >ネストされたSelect Caseの例
次の例に示すように、Select Case構造をネストすることができます。このルーチンは、アクティブなセルを調べ、セルの内容を説明するメッセージを表示します。プロシージャには3つのSelect Case構造があり、それぞれに独自のEnd Select文があります。
Sub CheckCell()Dim Msg As String Select Case IsEmpty(ActiveCell)Case True Msg = "は空白です。 "Case Else Select Case ActiveCell。 HasFormula Case True Msg = "式があります" Case Else Select Case IsNumeric(ActiveCell)Case True Msg = "数値があります" Case Else Msg = "テキストあり" End Select End Select End MsgBox "Cell"&ActiveCellを選択します。 Address& ""&Msg End Sub
ロジックは次のようになります。
<! - 3 - >-
セルが空であるかどうか調べます。
-
空でない場合は、数式が含まれているかどうかを確認します。
-
数式がない場合は、数値またはテキストが含まれているかどうかを調べます。
ルーチンが終了すると、Msg変数にはセルの内容を記述する文字列が含まれます。 MsgBox関数は、そのメッセージを表示します。
CheckCellプロシージャによって表示されるメッセージ。Select Case構造を必要なだけ深く入れ子にすることはできますが、各Select Caseステートメントに対応するEnd Select文があることを確認してください。
インデントコードが努力する価値があるとまだ確信していない場合は、前のリストが良い例として役立ちます。ネスティングレベルを明確にするための圧痕。字下げなしで同じ手順を見てください:
Sub CheckCell()Dim Msg As String Select Case IsEmpty(ActiveCell)Case True Msg = "は空白です。 "Case Else Select Case ActiveCell。 HasFormula Case True Msg = "式があります" Case Else Select Case IsNumeric(ActiveCell)Case True Msg = "数値があります" Case Else Msg = "テキストあり" End Select End Select End MsgBox "Cell"&ActiveCellを選択します。アドレス& ""&メッセージエンドサブ
かなり理解できない、ええ?