Deprecated : The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
日付の関数:Excel VBA関数
Home »
Excel講座の総目次 »
Excel VBA入門:目次 »
Excel VBA関数:目次 »
日付の関数
このページではExcel VBAの日付に関する関数をまとめて説明しています。
ワークシート関数と同名の関数でも使い方が異なっていたりしますので区別して覚える必要があります。
システムの日付が返されます。
使用例
Sub test()
Range("A1").Value = Date
End Sub
A1セルに「2008/11/2」と返されます。
注:実行したのはPCのカレンダーが2008年11月2日です。
表示はWindowsの設定に影響されますので注意が必要です。以下はVistaの画面例です。
「コントロールパネル」の「地域と言語のオプション」で設定されている「短い形式」の値が返されます。
下図の例は、「英語(米国)」に設定してあると、「11/2/2008」が帰ってきます。
Exce2002lではセルの表示形式の設定が以下のように変更されます。
ロケールが「英語(U.S)」となっています。
指定した日付から「年」を返します。
使用例
Sub test2()
Range("B1").Value = Year(Date)
End Sub
2008が返されます。
注:実行したのはPCのカレンダーが2008年11月2日です。
指定した日付から「月」を返します。
使用例
Sub test3()
Range("B1").Value = Month(Date)
End Sub
11が返されます。
注:実行したのはPCのカレンダーが2008年11月2日です。
指定した日付から「日」を返します。
使用例
Sub test4()
Range("B1").Value = Day(Date)
End Sub
2が返されます。
注:実行したのはPCのカレンダーが2008年11月2日です。
指定した間隔を加算した日付の値を返します。
構文:DateAdd(interval, number, date)
interval:必ず指定します。追加する時間間隔を表す文字列式を指定します。
yyyy
年
q
四半期
m
月
y
年間通算日
d
日
w
週日
ww
週
h
時
n
分
s
秒
number:必ず指定します。追加する時間間隔の数を表す数式を指定します。
未来の日時を取得するには正の数を指定します。過去の日時を取得するには負の数を指定します。
date:必ず指定します。時間間隔を追加する日付を表すバリアント型 (内部処理形式 Date の Variant) の値またはリテラル文字列を指定します。
使用例
Sub test5()
Range("C1").Value = DateAdd("yyyy", 1, "2008/2/1")
Range("C2").Value = DateAdd("y", 365, "2008/2/1")
Range("C3").Value = DateAdd("m", 1, "2008/1/31")
End Sub
C1セル:2009/2/1 が返ります。
C2セル:2009/1/31 が返ります。
C3セル:2009/2/29 が返ります。
注:2008年は閏年です。2008/2/29がありますので、"y"で365とすると1日ずれます。
2008/1/31の1ヵ月後は2009/2/29、2月の月末が返ります。
2つの指定した日付の時間間隔の値を返します。
構文:DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
interval:必ず指定します。時間単位を表す文字列式を指定します。
日数を求めるには、年間通算日 ("y") か、日 ("d") のいずれかを指定します。
名前付き引数
yyyy
年
q
四半期
m
月
y
年間通算日
d
日
w
週日
ww
週
h
時
n
分
s
秒
date1, date2:必ず指定します。間隔を計算する 2 つの日付を指定します。
firstdayofweek:省略可能です。週の始まりの曜日を表す定数を指定します。省略すると、日曜日を指定したものとみなされます。
定数
値
内容
vbUseSystem
0
NLS API の設定値を使います。
vbSunday
1
(既定値) 日曜
vbMonday
2
月曜
vbTuesday
3
火曜
vbWednesday
4
水曜
vbThursday
5
木曜
vbFriday
6
金曜
vbSaturday
7
土曜
firstweekofyear 省略可能です。年度の第 1 週を表す定数を指定します。省略すると、1 月 1 日を含む週が第 1 週とみなされます
定数
値
内容
vbUseSystem
0
NLS API の設定値を使います。
vbFirstJan1
1
(既定値) 1月1日を含む週を年度の第1週として扱います。
vbFirstFourDays
2
7日のうち少なくとも 4日が新年度に含まれる週を年度の第1週として扱います。
vbFirstFullWeek
3
全体が新年度に含まれる最初の週を年度の第1週として扱います。
使用例
Sub test6()
Range("D1").Value = DateDiff("m", "2008/2/3",
"2008/10/1")
Range("D2").Value = DateDiff("yyyy", "2008/2/3",
"2008/10/1")
Range("D3").Value = DateDiff("y", "2008/2/3",
"2008/10/1")
End Sub
D1セル:8が返ります。
D2セル:0が返ります。
D3セル:241が返ります。
何曜日であるかを表す整数を表すバリアント型 (内部処理形式 Integer の Variant) の値を返します。
定数
値
内容
vbSunday
1
日曜
vbMonday
2
月曜
vbTuesday
3
火曜
vbWednesday
4
水曜
VbThursday
5
木曜
VbFriday
6
金曜
VbSaturday
7
土曜
構文:Weekday(date, [firstdayofweek])
date:必ず指定します。日付を表す数式または文字列式を指定します。名前付き引数 date が Null 値を含む場合は、Null 値を返します。
firstdayofweek 省略可能です。週の第 1 日目の曜日を指定する定数です。この定数を指定しない場合は、定数 vbSunday を指定したとみなされます。
定数
値
内容
vbUseSystem
0
NLS APIの 設定値を使います。
vbSunday
1
(既定値) 日曜
vbMonday
2
月曜
vbTuesday
3
火曜
vbWednesday
4
水曜
vbThursday
5
木曜
vbFriday
6
金曜
vbSaturday
7
土曜
使用例
Sub test7()
Range("E1").Value = Weekday("2008/11/5", vbSunday)
Range("E2").Value = Weekday("2008/11/5", vbMonday)
End Sub
E1セル:4が返ります。
E2セル:3が返ります。
つまり、2008/11/5は水曜日ですので、日曜日から数えると「4」となり、月曜日から数えると「3」となります。
指定された曜日を表す文字列を返します。
構文:WeekdayName(weekday, abbreviate, firstdayofweek)
weekday:必ず指定します。曜日を示す数値を指定します。各曜日を表す数値は、引数 firstdayofweek の設定値によって異なります。
abbreviate:省略可能です。曜日名を省略するかどうかを示すブール値を指定します。省略すると、既定値の偽 (False) が使われ、曜日名は省略されません。
firstdayofweek:省略可能です。曜日の最初の日を示す数値を指定します。
定数
値
内容
vbUseSystem
0
NLS APIの 設定値を使います。
vbSunday
1
(既定値) 日曜
vbMonday
2
月曜
vbTuesday
3
火曜
vbWednesday
4
水曜
vbThursday
5
木曜
vbFriday
6
金曜
vbSaturday
7
土曜
使用例
Sub test8()
Range("F1").Value = WeekdayName(Weekday("2008/11/5",
vbSunday), , vbSunday)
Range("F2").Value = WeekdayName(Weekday("2008/11/5",
vbSunday), True, vbSunday)
End Sub
abbreviate, firstdayofweekを省略すると、以下のようになります。
Sub test9()
Range("F1").Value = WeekdayName(Weekday("2008/11/5"))
Range("F2").Value = WeekdayName(Weekday("2008/11/5"),
True)
End Sub
F1セルには「水曜日」が返ります。
F2セルには「水」が返ります。
日付を表す値を返します
構文:Datevalue(date)
date:100年1月1日から 9999年12月31日までの範囲の日付を表す文字列式を指定します。
使用例
Sub test10()
Range("B1").Value = DateValue("平成20年11月2日")
Range("B2").Value = DateValue("H20年11月2日")
Range("B3").Value = DateValue("Nov 2, 2008")
End Sub
B1:B3セルはいずれも日付「2008/11/2」を返します。セルの値はシリアル値です。
引数に指定した年、月、日に対応する値を返えします。
構文:DateSerial(year, month, day)
year:必ず指定します。年を表す100 〜 9999 の範囲の数値または数式を指定します。
month:必ず指定します。月を表す 1 〜 12 の範囲の数値または任意の数式を指定します。
day:必ず指定します。日を表す 1 〜 31 の範囲の数値または任意の数式を指定します。
使用例
Sub test11()
Range("C1").Value = DateSerial(2008, 11, 2)
End Sub
C1セルには日付「2008/11/2」のシリアル値が返されます。
日付の指定した部分の値を返します。
構文:DatePart(interval, date[,firstdayofweek[, firstweekofyear]])
interval:必ず指定します。時間間隔の単位を表す文字列式を指定します。
設定値
内容
yyyy
年
q
四半期
m
月
y
年間通算日
d
日
w
週日
ww
週
h
時
n
分
s
秒
date:必ず指定します。評価するバリアント型 (内部処理形式 Date の Variant) の値を指定します。
firstdayofweek:省略可能です。週の始まりの曜日を表す定数を指定します。省略すると、日曜日を指定したものとみなされます。
定数
値
内容
vbUseSystem
0
NLS APIの 設定値を使います。
vbSunday
1
(既定値) 日曜
vbMonday
2
月曜
vbTuesday
3
火曜
vbWednesday
4
水曜
vbThursday
5
木曜
vbFriday
6
金曜
vbSaturday
7
土曜
firstweekofyear:省略可能です。年度の第1週を表す定数を指定します。省略すると、1月1日を含む週が第1週とみなされます。
定数
値
内容
vbUseSystem
0
NLS API の設定値を使います。
vbFirstJan1
1
(既定値) 1 月 1 日を含む週を年度の第 1 週として扱います。
vbFirstFourDays
2
7 日のうち少なくとも 4 日が新年度に含まれる週を年度の第 1 週として扱います。
vbFirstFullWeek
3
全体が新年度に含まれる最初の週を年度の第 1 週として扱います。
使用例
Sub test12()
Range("D1").Value = "本日は第" & DatePart("q",
Date) & "四半期です"
Range("D2").Value = "本日は第" & DatePart("ww",
Date) & "週です"
End Sub
D1セルには「本日は第4四半期です」と表示されます。
D2セルには「本日は第45週です」と表示されます。
注:実行したのはPCのカレンダーが2008年11月2日です。
スポンサードリンク
よねさんのWordとExcelの小部屋 |Excel(エクセル) VBA関数:目次 |日付の関数
PageViewCounter
Since2006/2/27