広告

【プログラミング入門】【VBA】9日目 枝分かれ「Select」

2022.10.10更新

ExcelVBAでプログラミング入門のタイトル画像になります

お仕事などでお馴染みの表計算ソフト、エクセルに付属しているExcelVBA(エクセルブイビーエー)というプログラミング言語を使って初心者・入門者向けにプログラミングのキホンを解説していきます!

ExcelVBAができるようになれば業務内容によってはボタン一つで大幅な業務効率化ができる他に、普段のエクセルの使い方も段違いにレベルアップする事ができます!

ベテランの方も新人さんも興味のある方はぜひ挑戦してみてください!

枝分かれ「Select」

今回はさらっといきましょう!わかりやすいし便利な命令です!

その1 数字で分岐

■9日目 プログラム1■


'9日目 プログラム1

Sub test()

	Dim suji As Integer
	
	suji = 3

	Select Case suji
	Case 1
		MsgBox "Case1に枝分かれしました"

	Case 2
		MsgBox "Case2に枝分かれしました"

	Case 3
		MsgBox "Case3に枝分かれしました"

	Case Else
		MsgBox "全てのCaseに当てはまりません"
	End Select

End Sub

■実行結果■

VBAにおける条件分岐「Select」命令の説明画像1

■説明■

枝分かれをさせる「Select(セレクト)」命令です。

数字または文章を「Select」命令で判断・枝分かれさせる事ができます。


Select Case 変数
Case 1
	ケース1の場合
Case 2
	ケース2の場合
Case 3
	ケース3の場合
Case Else
	それ以外の場合
End Select

ここに入れた変数の内容によってそれぞれのケースに枝分かれをします。

「Select Case」~「End Select」までで1セットです。


Select Case suji
Case 1
	MsgBox "Case1に枝分かれしました"

Case 2
	MsgBox "Case2に枝分かれしました"

Case 3
	MsgBox "Case3に枝分かれしました"

Case Else
	MsgBox "全てのCaseに当てはまりません"
End Select

さきほどのプログラムの場合は変数「suji」の内容は「3」だったので「Case 3」に枝分かれをしました。

「Case 1、Case 2、Case 3・・・」と順番通りに並んでますが、別に順番どおりに並べる必要はなく


Select Case suji
Case 13
	MsgBox "Case13に枝分かれしました"

Case 255
	MsgBox "Case255に枝分かれしました"

Case 32
	MsgBox "Case32に枝分かれしました"

Case Else
	MsgBox "全てのCaseに当てはまりません"
End Select

のように順番がとびとびでバラバラでも大丈夫です。

最後の「Case Else」っていうのはすべてのケースに当てはまらない場合に実行されます。

その2 「文字」や「文章」で分岐

■9日目 プログラム2■


'9日目 プログラム2

Sub test()

	Dim moji As String
	
	moji = InputBox("yかnを入力してね!")

	Select Case moji
	Case "y"
		MsgBox "yを入力しましたね!"

	Case "n"
		MsgBox "nを入力しましたね!"

	Case Else
		MsgBox "全てのCaseに当てはまりません"
	End Select

End Sub

■実行結果■

VBAにおける条件分岐「Select」命令の説明画像2

続けて文章の場合も見ていきましょう!

■9日目 プログラム3■


'9日目 プログラム3

Sub test()

	Dim fruit As String
	Dim message As String
	
	message = "らっしゃい!" & vbCrLf & "どちらの果物になさいますか?" & vbCrLf & "(みかん・りんご・もも)"
	fruit = InputBox(message)

	Select Case fruit
	Case "みかん"
		MsgBox "100円になります!"

	Case "りんご"
		MsgBox "120円になります!"

	Case "もも"
		MsgBox "すいやせん。ももは品切れです!"

	Case Else
		MsgBox "ちょっと何言ってるかわからない・・・。"
	End Select

End Sub

■実行結果■

VBAにおける条件分岐「Select」命令の説明画像3

■説明■

先に「InputBox」内のメッセージについてですが、改行などを入れたい場合はこのように別にメッセージを作ってそれを「InputBox」に入れてあげます。

文字や文章で枝分かれをさせる事もできます。

Caseに文字や文章を使う時は「"」で囲みます!

一字一句間違わずに入力してもらうトコロに注意です。

広告

条件式で指定

条件式を使った指定もできます。

■9日目 プログラム4■


'9日目 プログラム4

Sub test()

	Dim suji As Integer

	suji = InputBox("何か数字を入れてください")

	Select Case suji
	Case Is <= 50
		MsgBox "50以下の数字ですね!"

	Case Is >= 100
		MsgBox "100以上の数字ですね!"

	Case Else
		MsgBox "51 ~ 99の間の数字ですね!"
	End Select
	
End Sub

■実行結果■

VBAにおける条件分岐「Select」命令の説明画像4

■説明■

「Case Is」を使えば「If」命令と同じように条件式を使う事ができます。

範囲で指定

「50 ~ 100」のような範囲で指定する事もできます。

■9日目 プログラム5■


'9日目 プログラム5

Sub test()

	Dim suji As Integer

	suji = InputBox("何か数字を入れてください")

	Select Case suji
	Case 0 To 50
		MsgBox "0 ~ 50の数字ですね!"

	Case 51 To 100
		MsgBox "51 ~ 100の数字ですね!"

	Case Else
		MsgBox "0 ~ 100以外の数字ですね!"
	End Select
	
End Sub

■実行結果■

VBAにおける条件分岐「Select」命令の説明画像5

■説明■

「Case To」を使えば範囲で指定する事もできます。

Caseが重なった時

Caseの条件が重なった時は一番最初に合致する条件のみ実行されます。

■9日目 プログラム6■


'9日目 プログラム6

Sub test()

	Dim suji As Integer

	suji = InputBox("何か数字を入れてください")

	Select Case suji
	Case 0 To 50
		MsgBox "0 ~ 50の数字ですね!"

	Case 51 To 100
		MsgBox "51 ~ 100の数字ですね!"

	Case 75
		MsgBox "75ですね!"

	Case Else
		MsgBox "0 ~ 100以外の数字ですね!"
	End Select
	
End Sub

■実行結果■

VBAにおける条件分岐「Select」命令の説明画像6

■説明■

このように条件が重なった時は一番最初に合致する一つの条件しか実行されないので注意しましょう。

「Select」命令はたくさんの条件を細かく分岐させたい時にとても便利です!

前回の「If」命令などと組み合わせて簡単なノベルゲームなど作れそうですね!

いろいろ工夫して試してみてください!

次回はいよいよ繰り返しの命令に入ります!

次回

10日目 繰り返し「For」命令

広告

Copyright 2016 K.N/petitetech.com