Excel。VBA。データを読み込んだ日付から曜日を表示するにはどうしたらいい
<Excel VBA:WeekdayName+Weekday関数>
大量なデータを読み込んだら、日付は入力されていましたが、曜日は入力されていませんでした。
自分自身で調べて入力するよりも、関数をつかって算出させるほうが楽ですが、データを読み込むたびに、関数を作るのも面倒です。
そこで、Excel VBAでプログラム文をつくって対応してみてはどうでしょうか
Sub 曜日()
Dim i As Integer
Dim lastrow As Long
lastrow = Cells(Rows.Count, "a").End(xlUp).Row
For i = 2 To lastrow
Cells(i, "b") = WeekdayName(Weekday(Cells(i, "A")), True)
Next
End Sub
それでは、実行してみましょう。
WeekdayName関数とWeekday関数を組み合わせてつかうことで、曜日を簡単に算出することができます。
プログラム文を確認してきます。
最初は、変数宣言ですね。
Dim i As Integer
Dim lastrow As Long
lastrow = Cells(Rows.Count, "a").End(xlUp).Row
このlastrowには、データの最終行番号を代入させることで、この後のFor To Next文の繰り返しに使っています
For i = 2 To lastrow
Cells(i, "b") = WeekdayName(Weekday(Cells(i, "A")), True)
Next
繰り返し文にある
WeekdayName(Weekday(Cells(i, "A")), True)
この行で日付から曜日を表示させているわけです。
「Weekday(Cells(i, "A"))」は、Excelにもある「Weekday関数」と同じで、日曜日を1、月曜日を2と算出してくれる関数です。
ただ、Weekday関数では、曜日に割り振られた番号を算出してくれるだけなので、番号をみて、すぐに何曜日なのかわかりません。
そこで、Excelにはない、「WeekdayName関数」をつかいます。
このWeekdayName関数は、1なら「日」と表示してくれる関数です。
Excelにはない関数もExcel VBAにはいろいろありますので、つかってみるといいかもしれませんね。