EXCEL、VBAプログラミング入門12~select-caseについて~第2回目

今回は、EXCEL、VBAプログラミングの第12回目で、select-case文について説明をさせていただく第2回目です。

今回は、以下のことについて解説を行っています。
1)はじめに
2)足算処理の内容
3)Select Case文

1)はじめに
前回の続きで、下図の通り「四則演算」関数について説明をします。

図1.「四則演算」関数

前回までで、以下の内容について説明をしました。

If 表示モード = "結果" Or 表示モード = "記録" Then
   MsgBox "数値を入力して下さい"
   Exit Function
End If

2)足算処理の内容
今回は以下の部分からです。
If 一時記憶 = “” Then
=(イコール)の後ろは「”」(ダブルクォーテーション)が2つ並んでいます。例えば、何かの文字を入力する場合はその前段の通り
IF 表示モード = “結果” ・・・・・ Then
にて「結果」という文字と「表示モード」変数の値がイコールであるかどうかを判別しています。今回の部分では「”」で囲まれた部分には文字がありません。つまり「一時記憶」変数に関しては何も文字がない状態と比較している訳です。

「一時記憶」変数がブランク(値が何もない)場合には、IF文内の処理が行われます。
一時記憶 = Worksheets(“sheet1”).Range(“b3”).Value
にて「一時記憶」変数に「Worksheets(“sheet1”).Range(“b3”).Value」の値をセットしています。

Worksheets(“sheet1”).Range(“b3”).Valueの値とは、「sheet1」シートの「b3」セルの値となります。具体的には下図の値となります。

その後、
Range(“b3”).Value = “”
にて「b3」セルの値にブランクをセットしています。ブランクをセットするとは、「b3」セルの値を削除していることと同じです。

これは、どのような処理を意味しているかというと例えば
12+45
という演算を行う場合に、数値の「1」ボタンを押すと「b3」セルには「1」と表示され、次に数値の「2」ボタンを押すと「b3」セルには「12」と表示されます。

その後に「+」ボタンを押すと、次の「45」を入力するために「b3」セルの値は削除する必要がありますが、それと同時に最終的には次に入力される値と演算処理を行わないといけませんので、「一時記憶」変数に「12」という値を保持しておきます。

12+45
と入力した後に「+」ボタンを押した場合には、演算はまだ続くことになりますが、一旦、この時点までに入力した「12+45」の結果を「b3」セルに表示します。

上記の通り、「12+」までの処理で、「一時記憶」変数には「12」という値が入っていますので、「45」を入力した後に「+」ボタンを押すと
一時記憶 = “”
の条件には合致しませんので、Else以降の処理が行われます。
If 一時記憶 = “” Then

Else

End If

ちなみにElse処理は上部の「If 一時記憶 = “” Then」の処理に合致しない場合に行われます。

3)Select Case文
次に、
Select Case

End Select
ですが、これはIF文と同様に条件分岐の処理になります。

Select Case 演算子
の部分ですが、演算子は変数で、
Function 四則演算(演算子 As String)
の部分で変数を宣言しています。

「演算子」変数に「足算」という文字が入っている場合には
Case “足算”
内の
Worksheets(“sheet1”).Range(“b3”).Value= CDbl(一時記憶) + CDbl(Worksheets(“sheet1”).Range(“b3”).Value)
の部分が処理され、「演算子」変数に「引算」という文字が入っている場合には
Range(“b3”).Value = CDbl(一時記憶) – CDbl(Range(“b3”).Value)
の部分が処理され、「演算子」変数に「掛算」という文字が入っている場合には
Range(“b3”).Value = CDbl(一時記憶) * CDbl(Range(“b3”).Value)
の部分が処理され、「演算子」変数に「割算」という文字が入っている場合には
Range(“b3”).Value = CDbl(一時記憶) / CDbl(Range(“b3”).Value)
の部分が処理されることになります。

Select CaseはIF文と同様に条件分岐処理となりますので、Select Case部分をIF文にて記載することが可能です。

IF文と同様にSelect Caseでもelseを使用することが可能です。その場合には、以下のようになります。
Select Case 変数
      Case 値1
              変数が値1の場合に行われる処理
      Case 値2
             変数が値2の場合に行われる処理
     Case Else
             変数が値1、値2以外の場合に行われる処理
End Select

上記はイコール条件ですが、イコール条件ではない時には次のように記載します。
Select Case 変数
        Case Is >= 値1 
              変数が値1より大きい場合に行われる処理
        Case Is >=値2
             変数が値2より大きい場合に行われる処理
        Case Else
            上記の条件に合わない場合に行われる処理
End Select

また、変数がある値の範囲にあるかで分岐したい場合には、以下のように記述します。
Select Case 変数
        Case 値1 To 値2
              変数が値1~値2までの値の場合に行われる処理
        Case 値3 To 値4
             変数が値3~値4までの値の場合に行われる処理
        Case Else
            上記の条件に合わない場合に行われる処理
End Select


ニコニコチャンネル(月額固定で見放題)
http://ch.nicovideo.jp/ai-light
本記事に関連する動画講座を閲覧できます。一部の動画は無料でも閲覧できます。

YouTubeチャンネル(無料動画配信中)
https://www.youtube.com/user/ailightcom
ITと経営に関する動画を配信しております。
よろしければ、チャンネル登録をお願い致します。

無料から学べる講座
https://www.ai-light.com/itkeiei/
本記事に関連する動画講座をセット販売しております。
その他、ITと経営に関する動画もセット販売しております。

格安ホームページ制作所
https://www.ai-light.com/hp2
インターネットマーケティングに関する記事が無料で閲覧可能です。

株式会社アイライト公式HP
https://www.ai-light.com/
(Access・Excelでシステム開発会社を探されている法人様はこちら)

ITでお困りのことがございましたら、まずはご相談(コンサルティング)
https://www.ai-light.com/itconsulting.html


弊社は、主に中小企業様向けの業務システム開発ホームページ制作パソコンサポートコンサルティングなど、ITに関する様々なサービスを格安で提供しております。
特に小規模な業務システム開発の分野では、主にAccess(アクセス)を利用した柔軟で効率的な開発を得意としており、関西でダントツの実績があります。

業務システム開発に関しては、以下のような内容で対応しております。
・顧客管理などの単機能なシステムは20万円~50万円が多い。
・受注から入金まで業務全体システムで100万円~350万円ぐらいが多い。
・Access(アクセス)-SQLserverで大規模システム開発は350万円~1500万円が多い。

詳細は、Access(アクセス)、Excel(エクセル)、WEBサイト製作による小規模システム開発のページをご参考ください。

大阪商工会議所からの推薦を受けて、中小企業庁運営の中小企業支援事業に専門家として登録されました。
通称ミラサポ。3回まで無料でのコンサルティングが可能です。ご興味がある方はご連絡ください。
https://www.mirasapo.jp/


(近畿大学にて非常勤講師も務めたバリバリの技術屋が経営する会社)

Access(アクセス)Excel(エクセル)SQL server バーコード Webシステムを使った業務システムのシステム開発の無料相談を受付中

株式会社 アイライト 担当:内藤 響(Naito Ko)
〒550-0005 大阪市西区西本町1丁目5番9号 日清ビル 5F
(四つ橋線 本町駅 24番出口すぐ)
まずは、メール・電話でご相談ください。
TEL : (06) 6599-8890 E-mail : info@ai-light.com
お電話が混んでいる場合が多いので、つながりにくい場合は
TEL : (06) 6535-5117までお願いします。