メイン画像

VBScript - 日付・時刻から年/月/日/時/分/秒の部分を取得する

VBScript - 日付・時刻から年/月/日/時/分/秒の部分を取得する


Date 型の変数から日付や時刻の一部分を取得する関数を紹介する。

日付の一部分を取得する

Year 関数は日付から年を取得する。
Month 関数は日付から月を取得する。
Day 関数は日付から日(月の何日か)を取得する。

いずれの関数も整数が返る。

Year( Date )
Month( Date )
Day( Date )

Date には日付(Date 型の値)を指定する。

時刻の一部分を取得する

Hour 関数は日付から時を取得する。
Minute 関数は日付から分を取得する。
Second 関数は日付から秒を取得する。

いずれの関数も整数が返る。

Hour( Time )
Minute( Time )
Second( Time )

Time には日付(Date 型の値)を指定する。

曜日を取得する

Weekday 関数は曜日を表す整数を返す。
日曜なら 1 、月曜なら 2 …… 土曜なら 7 が返る。

Weekday( Date, [FirstDayOfWeek = vbSunday] )

Date に日付を指定する。

FirstDayOfWeek に週の始まりの曜日を指定する。
省略した場合、日曜となる。

定数 説明
vbUseSystemDayOfWeek 0 各国語対応 (NLS) API の設定値を使用する。
vbSunday 1 日曜
vbMonday 2 月曜
vbTuesday 3 火曜
vbWednesday 4 水曜
vbThursday 5 木曜
vbFriday 6 金曜
vbSaturday 7 土曜

戻り値は曜日を表す整数。

定数 説明
vbSunday 1 日曜
vbMonday 2 月曜
vbTuesday 3 火曜
vbWednesday 4 水曜
vbThursday 5 木曜
vbFriday 6 金曜
vbSaturday 7 土曜

 

WeekdayName 関数は指定された曜日を表す文字列を返す。

WeekdayName( Weekday, [Abbreviate = False], [FirstDayOfWeek = vbUseSystemDayOfWeek] )

Weekday に曜日を表す整数を指定する。

Abbreviate に曜日名を省略するかどうかを指定する。
省略するなら True 、省略しないなら False 。
省略した場合、 False 。

FirstDayOfWeek に週の始まりの曜日を指定する。
指定可能な値は Weekday 関数と同じ。
省略した場合、「各国語対応 (NLS) API の設定値」となる。

 

以下のコードは、曜日・曜日名を取得する。

WScript.Echo Weekday(#2023-01-02 03:04:05#)
' → 2

WScript.Echo WeekdayName(2)
' → 月曜日

WScript.Echo WeekdayName(2, True)
' → 月

月の名前を取得する

MonthName 関数は月を表す名前を返す。

*たとえば9月なら「September」や「Sep」といった月名が取得できると思っていたが、どうやら違うようだ。
英語圏で実行しないと、思っていた月名は取得できないらしい。

MonthName( Month, [Abbreviate = False] )

Month は月を示す数値を指定する。1月なら 1 、2月なら 2 となる。

Abbreviate に月名を短縮するかどうかを指定する。
省略するなら True 、省略しないなら False 。
省略した場合、 False 。

 

以下のコードは、月名を取得する。

WScript.Echo MonthName(9)
' → 9月

WScript.Echo MonthName(9, True)
' → 9

日付や時刻の一部分を取得する

DatePart 関数は日付から指定された部分を取得する。

DatePart( Interval, Date, [FirstDayOfWeek = vbSunday], [FirstWeekOfYear = vbFirstJan1] )

Interval は取得する日付や時刻の部分を示す文字列を指定する。

内容
yyyy
q 四半期
m
y 年間通算日
d
w 週日
ww
h
n
s

Date は日付を指定する。

FirstDayOfWeek に週の始まりの曜日を指定する。
指定可能な値は Weekday 関数と同じ。
省略した場合、日曜となる。

FirstWeekOfYear に年度の第1週を表す値を指定する。
省略した場合、1月1日を含む週が第1週となる。

定数 説明
vbUseSystem 0 各国語対応 (NLS) API の設定値を使用する。
vbFirstJan1 1 1 月 1 日を含む週を年度の第 1 週として扱う。
vbFirstFourDays 2 7 日のうち少なくとも 4 日が新年度に含まれる週を年度の第 1 週として扱う。
vbFirstFullWeek 3 全体が新年度に含まれる最初の週を年度の第 1 週として扱う。

 

以下のコードは、日付から年/月/日をそれぞれを取得する。

Dim dtm
dtm = #2023-01-02 03:04:05#

WScript.Echo DatePart("yyyy", dtm)
WScript.Echo DatePart("m", dtm)
WScript.Echo DatePart("d", dtm)

 

指定した値 値の説明 #2023-01-02 03:04:05#からの取得結果 #2023-12-31 23:58:59#からの取得結果
yyyy 2023 2023
q 四半期 1 4
m 1 12
y 年間通算日 2 365
d 2 31
w 週日 2 1
ww 1 53
h 3 23
n 4 58
s 5 59

書式設定した日付または時刻を文字列で取得する

FormatDateTime 関数は書式設定した日付または時刻を文字列で返す。

VBA や VB6 にある Format 関数とは違い、自由に書式を指定することはできない。

FormatDateTime( Date, [NamedFormat = vbGeneralDate] )

Date は日付を指定する。

NamedFormat はどの書式を設定するか指定する。
省略した場合、 0 (定数: vbGeneralDate)となる。

定数 説明
vbGeneralDate 0 日付か時刻、または両方を表示する。
日付部がある場合は、日付を短い形式で表示する。
時刻部がある場合は、時刻を長い形式で表示する。
両方がある場合は、両方とも表示する。
vbLongDate 1 [地域のプロパティ] で指定されている長い形式で日付を表示する。
vbShortDate 2 [地域のプロパティ] で指定されている短い形式で日付を表示する。
vbLongTime 3 [地域のプロパティ] で指定されている形式で時刻を表示する。
vbShortTime 4 24 時間形式(hh:mm)で時刻を表示する。

 

以下のコードは、書式設定した日付を取得する。

WScript.Echo FormatDateTime(#2023-01-02 03:04:05#)
' → 2023/01/02 3:04:05

WScript.Echo FormatDateTime(#2023-01-02 03:04:05#, 1)
' → 2023年1月2日

 

引数と戻り値のサンプル。

引数 Date 引数 NamedFormat 戻り値
#2023-01-02 03:04:05# 0 2023/01/02 3:04:05
#2023-01-02# 0 2023/01/02
#03:04:05# 0 3:04:05
#2023-01-02 03:04:05# 1 2023年1月2日
#2023-01-02 03:04:05# 2 2023/01/02
#2023-01-02 03:04:05# 3 3:04:05
#2023-01-02 03:04:05# 4 03:04

アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


酒とアクアリウムが最近の楽しみ。

おすすめの記事