【VBA】VBAで制御文使ってみた(Select文)

目次

制御文(Select文)

こんにちは!

今回は、前回に続いて『Select』を紹介します😊

Excel関数よく使うよって人は、「IFSみたいな感じ。」です👍

これで半分くらい理解できるかも、、

「IFS分からん。」って人は、、、

前回の『はえ縄漁』のトコ見てください↓

VBAで制御文使ってみた(If文)VBAで制御文使ってみた(If文)

はえ縄漁、、、我ながらいい例えだ♪

こんな感じで分岐が沢山あって、一致した場合に処理される。っといった時に使います。

Ifで書いてみて、『単純に分岐多いな。』と感じたら、Select使う時かもしれません。

んじゃ、次で少し詳しく。

 

Select文の解説

IfとSelectで違うのが論理演算子。Ifと違って縛りがあります。

IfのようにAnd』は使えないし、Or』も使い方が違います。

他にも違いはありますが、どんどん先に行ってしまいましょう。

大体の人は、小中学生くらいでプログラミングの『プ』くらいまでかじってます。そんだけやってれば、マクロは組めると思います。

プログラミング』って、技術だからね。やってなんぼ。

そして、壁にぶち当たった時が、『』を身に付ける時😆

日々挑戦ね。行きましょう👍

Selectも、If同様に上から条件を見っていって、一致したら処理が実行されます。

 

図のように、Or』の代わりに『,』や『to』を使うところが、Ifとの違いかな。

そして、分岐全て不一致だった場合、Elseの処理が実行されます。

勿論、Elseがなければ、Selectを抜けます。

この辺りはIfと同じですね。

 

Selectを記述

実際にSelectを記述して、ステップイン(F8)で動作の確認をしてみましょう✊

変数『i』の数値を変更すると、実行される分岐が変わります。1~10で確認してみてください。

以下、コード。面倒だけど手打ちしましょう。

Sub selectbun()
Dim i As Long
    i = 0
    Select Case i
        Case Is < 1
            Debug.Print "1より小さい"
        Case 1 To 5
            Debug.Print "1~5"
        Case 6, 7, 8
            Debug.Print "6か7か8"
        Case 9
            Debug.Print "9"
        Case Else
            Debug.Print "上記以外"
    End Select
End Sub

如何でしょうか?

他にも、Likeでワイルドカードも使えるけれど、、、

Sub selectbun2()
Dim a As String
    a = "本マグロ"
    Select Case True
        Case a Like "*マグロ"
            Debug.Print "マグロが釣れました"
        Case Else
            Debug.Print "なにも釣れませんでした"
    End Select
End Sub

いつ使うんだよ。って感じですよね?

何万行書いても、使える場面あったっけ?なります😅

強引に使えば使えるでしょうけど。

 

 

はい、今日はSelectでした。

Ifと似てるので、ザックリ紹介しました😅

結局⇒

Ifより縛りはあるものの、見やすいしデバッグも簡単なので、使える場面があったら使ってください✨

ってことっす👍

次回は事務処理でよくある、あるあるマクロを作ります♬

またねぇ✋