サイトについて      連絡先   検索

VBA FormatDateTime 関数

はじめに

Excel VBA の FormatDateTime 関数を紹介します。

FormatDateTime 関数は、日付ををコンピューターの形式に従った文字列型 (String) で返します。

日本とアメリカなど、その地域の合った日付の形式にしたいときに使用します。

構文

FormatDateTime(日付)

FormatDateTime(日付, 形式)

名前 説明
引数「日付」文字列型にしたい日付を指定します。
引数「形式」省略できます。形式を指定します。
戻り値文字列型 (String)

引数「形式」、日付が (2000/1/2 3:4:5) で日本のとき。

書式 結果 説明
vbGeneralDate (既定)2000/01/02 3:04:05日付と時刻の一方または両方を表示します。日付部分がある場合は、短い日付として表示します。時刻部分がある場合は、長い時刻として表示します。ある場合は両方の部分を表示します。
vbLongDate2000年1月2日コンピューターの地域の設定で指定されている長い日付形式を使用して日付を表示します。
vbShortDate2000/01/02コンピューターの地域の設定で指定されている短い日付形式を使用して日付を表示します。
vbLongTime3:04:05コンピューターの地域の設定で指定されている時刻形式を使用して時刻を表示します。
vbShortTime03:0424 時間形式 (hh:mm) を使用して時刻を表示します。

解説

日本では年/月/日の形式ですが、アメリカなどでは月/日/年が一般的です。この違いを FormatDateTime 関数は自動で補ってくれます。

形式を省略したときは vbGeneralDate の形式が適用されます。

引数「日付」に文字列で日付を渡したときは、自動で日付型に変換してから処理してくれます。

vbGeneralDate が適用されるときは、引数「日付」の日付の部分を vbShortDate の形式にし、時刻の部分を vbLongTime の形式にします。

コンピュータの形式がどのようになっているかは、Windows 10 の [設定] - [時刻と言語] - [日付と時刻の形式を変更する] から確認や変更ができます。

1

vbShortTime を指定したときは (hh:mm) 形式で固定になっています。

使用例


Dim s As String

s = FormatDateTime("2000/1/2 3:4:5")
Debug.Print (s) ' 2000/01/02 3:04:05

s = FormatDateTime("2000/1/2")
Debug.Print (s) ' 2000/01/02

s = FormatDateTime("3:4:5")
Debug.Print (s) ' 3:04:05

Dim s As String

s = FormatDateTime("2000/1/2 3:4:5", vbLongDate)
Debug.Print (s) ' 2000年1月2日

s = FormatDateTime("2000/1/2 3:4:5", vbShortDate)
Debug.Print (s) ' 2000/01/02

s = FormatDateTime("2000/1/2 3:4:5", vbLongTime)
Debug.Print (s) ' 3:04:05

s = FormatDateTime("2000/1/2 3:4:5", vbShortTime)
Debug.Print (s) ' 03:04

関連ページ