「vba 今日 年 何週目」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
VBA(Visual Basic for Applications)で、今日が1年のうちの何週目にあたるのかを調べる方法を探している方による検索です。
今日が年の何週目かを取得するサンプルマクロ
DatePart関数を使えば、指定した日が年の何週目なのかを取得することができます。MsgBox DatePart("ww", Date)
End Sub
上記のマクロを、
2014年1月4日(土)に実行すると「1」が
2014年1月5日(日)に実行すると「2」が
2014年9月29日(月)に実行すると「40」が
メッセージボックスに表示されます。
サンプルマクロの解説
DatePart関数は、第2引数に指定された日付の何かを、第1引数に指定された文字列で返す関数です。
上記の「DatePart("ww", Date)」という式は、第2引数に今日の日付を返すDate関数、第1引数に何週目なのかを取得するために「ww」という文字列を指定しています。
「DatePart("y", Date)」という数式にして2014年9月29日に実行すると「272」という、1年のうちの何日目なのかを表す数値が返されます。
週の基準(何曜日が週の初めか)は、第3引数で指定します。第3引数を省略している上記の例では週の基準は日曜日になっています。
月曜日を週の初めにしたいのなら、
「DatePart("ww", Date, vbMonday)」
と指定してください。
上記の例では1月1日の存在する週を第1週としていますが、もしも7日間存在している週を一年の第1週としたいのならば、第4引数に「vbFirstFullWeek」を指定してください。
例えば、月曜日を週の初めとして、7日全体が含まれる週を第1週としたいのなら
「DatePart("ww", Date, vbMonday, vbFirstFullWeek)」
です。
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAで今日が年の何週目かを取得する-DatePart関数