エクセルマクロVBAでは、weekdayを使うことで曜日の情報を取得できます。
しかしweekdayでは曜日情報を数値で取得することしかできません。
そのため、日付の月火水木金土日を取得できないのです。
そこで、日付の曜日(月火水木金土日)を取得するVBAプログラムを紹介します。
目次
Weekdayで曜日情報を取得
冒頭でも記述しましたが、Weekdayを使って取得できる曜日情報は数値です。
日=1, 月=2, 火=3, 水=4, 木=5, 金=6, 土=7
Weekdayを使うと、上記のように日付から曜日情報を取得できるのですが、数値です。
実際にDebug.Printを使って検証してみます。
| 
					 1 2 3 4 5 6 7  | 
						Sub ConvertWeekday()     Debug.Print "Date:" & Date     Debug.Print "Weekday(Date)" & Weekday(Date) End Sub >>>Date:2021/07/04 >>>Weekday(Date)1  | 
					
2021/07/04は日曜日なので、1となります。
VBAで日付の曜日(月火水木金土日)を取得
| 
					 1 2 3 4 5 6 7 8 9 10 11 12  | 
						'プログラム0|変数宣言の指定 Option Explicit 'プログラム1|プログラム開始 Sub ConvertWeekday()     'プログラム2|曜日を取得     Dim youbi As String     youbi = Format(Date, "aaa") 'プログラム3|プログラム終了 End Sub  | 
					
以下で詳しく説明します。
プログラム0|変数宣言の指定
| 
					 1  | 
						Option Explicit  | 
					
「Option Explicit」とは、変数宣言を強制するためのものです。
予期しないエラーを防止できるため「Option Explicit」を入力することを習慣化することを推奨しています。
詳しい説明は以下のページで紹介しています。
プログラム1|プログラム開始
| 
					 1  | 
						Sub ConvertWeekday()  | 
					
VBAではプロシージャという単位でプログラムを呼び出します。
プロシージャの構文は下記となっています。
| 
					 1 2 3  | 
						Sub プロシージャ名()     '実行プログラム End Sub  | 
					
「Sub」で始まり「End Sub」で終わります。
プロシージャに関連するmoduleの話については以下で説明しています。
プログラム2|曜日を取得
| 
					 1 2  | 
						    Dim youbi As String     youbi = Format(Date, "aaa")  | 
					
変数youbiを文字数型で設定します。
変数については、以下のページで紹介しています。
Formatを使う
これでDate(今日の日付)を「aaa」型で取得できます。
aaaとは日付の日月火水木金土で表示することができます。
ちなみに「aaaa」となると「日曜日、月曜日・・・」というように「曜日」まで出力可能です。
Debug.Printでの検証結果
| 
					 1 2 3 4  | 
						Dim youbi As String youbi = Format(Date, "aaa") >>>日  | 
					
Debug.Printでの検証結果
aaaa型も検証してみます。
| 
					 1 2 3 4  | 
						Dim youbi As String youbi = Format(Date, "aaaa") >>>日曜日  | 
					
このようにFormat(Date,”aaa”)で曜日情報(日月火水木金土)を取得できます。
プログラム3|プログラム終了
| 
					 1  | 
						End Sub  | 
					
プログラム1と対になるプログラムで、プログラム終了させるための記述です。
「End Sub」を読み込むと、プログラムが終了します。
プログラムの解説はここまでです。
Excel VBAについて詳しく理解したいなら
VBAを活用すると、仕事を効率化できる幅を広げることができます。
たとえば私が実際にVBAを活用して効率化してきた作業は以下の記事で紹介しています。
興味がある人は以下の記事もご覧ください。
動画でも解説しています。
エクセルマクロVBAで出来ることを15の事例で紹介|日常業務をラクにするヒントを見つけよう!
(音声が小さいので、ボリュームを上げてご覧いただければと思います)
VBAの勉強方法
私はプログラミング初心者からVBAを勉強を始めて少しずつレベルアップしていきました。
少しずつレベルアップしながら、難しい内容に挑戦していくと効率的に学ぶことができます。
上記のリンクでは、VBA勉強に役立つ内容を紹介しています。
興味がある人はご覧ください。




