Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAで今日が年の何週目かを取得する-DatePart関数

VBAで今日が年の何週目かを取得する-DatePart関数

対象:Excel2007, Excel2010, Excel2013

「vba 今日 年 何週目」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

VBA(Visual Basic for Applications)で、今日が1年のうちの何週目にあたるのかを調べる方法を探している方による検索です。

[スポンサードリンク]

今日が年の何週目かを取得するサンプルマクロ

DatePart関数を使えば、指定した日が年の何週目なのかを取得することができます。
Sub 今日が何週目かを表示する()
 MsgBox DatePart("ww", Date)
End Sub

上記のマクロを、
2014年1月4日(土)に実行すると「1」が
2014年1月5日(日)に実行すると「2」が
2014年9月29日(月)に実行すると「40」が
メッセージボックスに表示されます。

サンプルマクロの解説

DatePart関数は、第2引数に指定された日付の何かを、第1引数に指定された文字列で返す関数です。

VBAで今日が年の何週目かを取得する

上記の「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関数

「VBA関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.