DatePart関数
DatePart関数は、VBA関数の中で日付・時刻関数に分類される関数です。
目次
DatePart関数とは
DatePart関数は、日付の指定した部分を含むバリアント型 (内部処理形式 Integer の Variant) の値を返します。
| 構文 | DatePart(interval, date[,firstdayofweek[, firstweekofyear]]) | |
|---|---|---|
| 引数 | 省略 | 説明 |
| interval | × | 時間間隔の単位を表す文字列式を指定します。 |
| date | × | 評価するバリアント型 (内部処理形式 Date の Variant) の値を指定します。 |
| firstdayofweek | ● | 週の始まりの曜日を表す定数を指定します。省略すると、日曜日を指定したものとみなされます。 |
| firstweekofyear | ● | 年度の第 1 週を表す定数を指定します。省略すると、1 月 1 日を含む週が第 1 週とみなされます。 |
引数interval
| 設定値 | 説明 |
|---|---|
| yyyy | yyyy |
| q | 四半期 |
| m | 月 |
| y | 年間通算日 |
| d | 日 |
| w | 週日 |
| ww | 週 |
| h | 時 |
| n | 分 |
| s | 秒 |
引数firstdayofweek
| 定数 | 値 | 説明 |
|---|---|---|
| vbUseSystem | 0 | NLS API の設定値を使います。 |
| vbSunday | 1 | (既定値) 日曜 |
| vbMonday | 2 | 月曜 |
| vbTuesday | 3 | 火曜 |
| vbWednesday | 4 | 水曜 |
| vbThursday | 5 | 木曜 |
| vbFriday | 6 | 金曜 |
| vbSaturday | 7 | 土曜 |
引数firstweekofyear
| 定数 | 値 | 説明 |
|---|---|---|
| vbUseSystem | 0 | NLS API の設定値を使います。 |
| vbFirstJan1 | 1 | (既定値) 1 月 1 日を含む週を年度の第 1 週として扱います。 |
| vbFirstFourDays | 2 | 7 日のうち少なくとも 4 日が新年度に含まれる週を年度の第 1 週として扱います。 |
| vbFirstFullWeek | 3 | 全体が新年度に含まれる最初の週を年度の第 1 週として扱います。 |
DatePart 関数を使うと、日付を評価し、特定の時間間隔部分を取得できます。たとえば、週日や現在の時刻などを計算できます。名前付き引数 firstdayofweek は、名前付き引数 interval に週 ("ww") を指定した場合の計算値に影響します。
名前付き引数 date に日付リテラルを指定した場合、指定した年が日付の固定部分となります。ただし、名前付き引数 date をダブル クォーテーション (" ") で囲み、年を省略すると、名前付き引数 date の式が評価されるたびにコードに現在の年が挿入されます。これを利用すると、異なる年度で使用できるコードを記述することが可能になります。
Calendar プロパティの設定がグレゴリオ暦の場合、引数 date にはグレゴリオ暦で表される日付を指定する必要があります。Calendar プロパティの設定が回教暦の場合、引数 date には回教暦で表される日付を指定する必要があります。
返される日付の部分は、現在のアラビア暦の時間間隔の単位で返されます。たとえば、現在のカレンダーが回教暦で、返される日付の部分が年の場合、その年の値は回教暦の年になります。
DatePart関数のサンプルコード
次の例は、ユーザーに日付の入力を求めた後、DatePart 関数を使って、その日付が四半期のうちのどの期に当たるかを調べます。
Sub sample()
Dim TheDate As Date ' 変数を宣言します。
Dim Msg
TheDate = InputBox("日付を入力してください。")
Msg = "第 " & DatePart("q", TheDate) & " 四半期"
MsgBox Msg
End Sub
実行結果
解説
日付・時刻関数一覧
| 関数名 | 内容 |
|---|---|
| Date | 現在のシステム日付を算出します。 |
| DateAdd | 指定した期間を加えた値を算出します。 |
| DateDiff | 指定した時間単位で、2つの日付の差を算出します。 |
| DatePart | 日付の指定した部分を算出します。 |
| DateSerial | 指定した年月日に対応するバリアント型の値を算出します。 |
| DateValue | 日付を表すバリアント型の値を算出します。 |
| Day | 指定した日付から、日を表す1~31までの値を算出します。 |
| Hour | 指定した時刻から、時間を表す0~23の値を算出します。 |
| Minute | 指定した時刻から、分を表す0~59の値を算出します。 |
| Month | 指定した日付から、月を表す1~12までの値を算出します。 |
| Now | 現在のシステム日付と時刻を算出します。 |
| Second | 指定した時刻から、秒を表す0~59の値を算出します。 |
| Time | 現在のシステム時刻を算出します。 |
| Timer | 午前0時から経過した秒数を算出します。 |
| TimeSerial | 指定した時分秒をバリアント型の値で算出します。 |
| TimeValue | 時刻をバリアント型の値で取得します。 |
| Weekday | 指定した日付の曜日を算出します。 |
| Year | 指定した日付の年を算出します。 |
