#049 今日が今月の第何曜日かを知るには? VBA

今日が今月の第何曜日かを知るには、Day関数 や DatePart関数 を組み合わせて使用します。
Msgbox "今日は第" & (Day(Date) + 6) \ 7 & _
              Choose(DatePart("w", Date), _
                "日", "月", "火", "水", "木", "金", "土")  & "曜日です。"

ここでは、今日が今月の何週目かを求める部分と、何曜日かを求める部分とを別々に考えます。

まず、(Day(Date) + 6) \ 7 が今日が今月の何週目かを求める部分です。Day(Date) は今日の日付の"日"の部分だけを返します。例えば、今日が4月15日とすれば、Day(Date) = 15 となります。1週間は7日ですので、それを7で割ることによって今日が何週目かを知ることができます。ただし、単純に7で割ると1日などはゼロになってしまいますので、まず+6してから割るようにします。

続いて、DatePart("w", Date) の部分が今日の曜日を求める部分です。DatePart関数では、一番目の引数に "w" を指定することによって曜日を求めることができます。"ww" とすると「年間を通して第何週目か」になってしまうので注意して下さい。この関数ではこれ以外にも次のような日付/時刻の部分を取得することができます。
yyyy
q 四半期
m
d
h
n
s

この DatePart("w", Date) では、日曜日が1、 月曜日が2、・・・・・・ 土曜日が7 といった数値を返します。ここではそれを「何曜日」という表現で出力するようにChoose関数を使っています。


※この方法は、クエリー式や、フォーム/レポートのテキストボックスなどのコントロールソースとしても使うことができます。その場合には式の前に "=" を付け、さらに Date() のように後ろにカッコを付ける必要があります。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved