エクセルVBA達人養成塾 小川です。
さいきんの添削事例から。
Select Case文は条件分岐を簡潔かつ可読性高く書くにはとても便利。
エクセルVBA発展編1講座を修了したくらいの方には、ぜひとも、以下の書き方も習得してもらいたいです。
以下は、ある変数の値によって、並べ替え用に作った複数のサブプロシージャのうちどれを実行するかを選択するプログラム。
サンプル1:
Select Case cntSort Case 1 SortA Case 2 SortB Case 3 SortB Case 4 SortC Case 5 SortC End Select
僕なら、こう↓書き換えます。
サンプル2:
Select Case cntSort Case 1 SortA Case 2, 3 SortB Case 4, 5 SortC End Select
以下の書き方↓もあり。
サンプル3:
Select Case cntSort Case 1 SortA Case 2 To 3 SortB Case 4 To 5 SortC End Select
サンプル2は羅列しています。
サンプル3は、範囲指定しています。
どっちが良いかはケースバイケースですが、日本語で説明するときにどうするかを考えるとよいかも。
「2, 3列が対象です」と説明したくなる状況なら、それをマクロ化するとサンプル2です。
「2列目から3列目までが対象です」と説明したくなる状況なら、それをマクロ化するとサンプル3です。
最後に、「変数の値が 2, 3, 6だったら」とかいう条件指定の場合も紹介します。
その場合、サンプル2とサンプル3のそれぞれ、以下のように変わります。
サンプル2-2:
Select Case cntSort Case 1 SortA Case 2, 3, 6 SortB Case 4, 5 SortC End Select
サンプル3-2:
Select Case cntSort Case 1 SortA Case 2 To 3, 6 SortB Case 4 To 5 SortC End Select