【Excel VBA】If Elseとは違う条件式(Select Case)について
エンジニアのIMMRです。Excel VBAの条件式には、以前に説明したExcel VBA 条件式(If Else)とこれから説明するSelect Caseの二つあります。1.従来のIf Else条件式If Elseは条件に合った時は処理Aを、条件に合わなかったら処理Bを実行します。では、下記のようなデータがあり、複数の条件があるとします。If Elseを使用して作成すると2種類の方法が浮かぶと思
初めまして、エンジニアのIMMRです。
下記のデータに記載してある日付が何曜日なのかを調べたいことがあると思います。
図1 ブック(日付が入力してあるもの)
ここでは、日付から曜日を取得する方法について説明します。
日付から曜日を確認する方法は、いくつかありますが、
ここでは、日付から曜日を表す数値を取得して、その算出された数値から曜日を確認する方法で行います。
図2 日付から曜日を取得するまでの流れ
日付から曜日を表す数値を確認する方法は
Weekday(日付)
※日付の部分は、"2019/1/23"等、直接入力するか、日付が記載してあるセルRange("A1")でもよいです。
曜日を表す数値は以下のようになります。
図3 Weekdayが出力する数値と曜日の関係
もし、その日付が月曜日なら2 土曜日なら7になります。
曜日を表す数値から曜日を取得する方法は
WeekdayName(曜日を表す数値)
※数値に対しての曜日は上図のとおりです。
曜日を表す数値が3なら火曜日になります。
実際に上記、サンプルコードを使用して、
WeekdayNameを使って日付から曜日を確認します。
下記データのセルA2に記載してある日付が何曜日かを確認します。
図4 ブック(日付が入力してあるもの)
サンプルコード
Sub TEST11()
Dim n As Long
n = Weekday(Range("A2"))
Range("B2") = WeekdayName(n)
End Sub
※セルA2に記載してある日付から曜日を表す数値を確認します。
確認したらその値を変数nに代入します。
変数nから曜日を確認して、結果をセルB2に代入します。
実行結果は以下になります。
図5 ブック(上記、コード実行後)
曜日が記載されています。
カレンダーから確認しても
2019年9月13日は金曜日であることにより
曜日が正しく、記載されています。
図6 カレンダー(2019年9月)
【著者】
今まではExcel VBAの開発をしてきました。
開発を主にしたものや他の業務の効率化を目指して行ったものさまざまです。
現在は、他のプログラミング言語に挑戦して、スキルアップを目指しています。