広告
お仕事などでお馴染みの表計算ソフト、エクセルに付属しているExcelVBA(エクセルブイビーエー)というプログラミング言語を使って初心者・入門者向けにプログラミングのキホンを解説していきます!
ExcelVBAができるようになれば業務内容によってはボタン一つで大幅な業務効率化ができる他に、普段のエクセルの使い方も段違いにレベルアップする事ができます!
ベテランの方も新人さんも興味のある方はぜひ挑戦してみてください!
今回はさらっといきましょう!わかりやすいし便利な命令です!
'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
枝分かれをさせる「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」っていうのはすべてのケースに当てはまらない場合に実行されます。
'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
続けて文章の場合も見ていきましょう!
'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
先に「InputBox」内のメッセージについてですが、改行などを入れたい場合はこのように別にメッセージを作ってそれを「InputBox」に入れてあげます。
文字や文章で枝分かれをさせる事もできます。
Caseに文字や文章を使う時は「"」で囲みます!
一字一句間違わずに入力してもらうトコロに注意です。
広告
条件式を使った指定もできます。
'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
「Case Is」を使えば「If」命令と同じように条件式を使う事ができます。
「50 ~ 100」のような範囲で指定する事もできます。
'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
「Case To」を使えば範囲で指定する事もできます。
Caseの条件が重なった時は一番最初に合致する条件のみ実行されます。
'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
このように条件が重なった時は一番最初に合致する一つの条件しか実行されないので注意しましょう。
「Select」命令はたくさんの条件を細かく分岐させたい時にとても便利です!
前回の「If」命令などと組み合わせて簡単なノベルゲームなど作れそうですね!
いろいろ工夫して試してみてください!
次回はいよいよ繰り返しの命令に入ります!
広告
Copyright 2016 K.N/petitetech.com