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

VBA 日付を変換

はじめに

Excel VBA の 日付 (Date) を文字列へ変換する方法を紹介します。

Format 関数を使用して日付を書式に従った文字列へ変換できます。

日付を文字列へ変換

VBA では文字列型へ日付を入れると自動的に変換されます。


Dim s As String
s = #1/2/2013#
Debug.Print (s) ' 2013/01/02

Format 関数を使用する

書式にしたがって日付を文字列に変換するには「Format 関数」を使用します。引数には (値, 書式) を渡します。

書式には次のものがあります。値が日付 (2000/1/2 3:4:56) のとき。

書式 結果 説明
yyyyy2000年を表示します。書式一つが下一桁を表しています。
mmm01月を表示します。
mm のようにすると必ず二桁表示します。日時分秒でも同じです。
dd2日を表示します。
hhh03時を表示します。
nn4分を表示します。
ss56秒を表示します。

Dim d As Date
d = "2000/1/2 3:4:56"
Debug.Print (Format(d,"yyyy年mm月dd日")) ' 2000年01月02日

Debug.Print (Format(d,"yyyy/m/d")) ' 2000/1/2

Debug.Print (Format(d,"hh:nn:ss")) ' 03:04:56

Debug.Print (Format(d,"h:n:s")) ' 3:4:56

FormatDateTime 関数を使用する

コンピューターの日付の形式に合わせて変換するには「FormatDateTime 関数」を使用します。引数には (日付, 形式) を渡します。

形式には次のものがあります。日付が (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) を使用して時刻を表示します。

Dim d As Date
d = "2000/1/2 3:4:5"

Dim s As String

s = FormatDateTime(d)
Debug.Print (s) ' 2000/01/02 3:04:05

s = FormatDateTime(d, vbLongDate)
Debug.Print (s) ' 2000年1月2日

s = FormatDateTime(d, vbShortDate)
Debug.Print (s) ' 2000/01/02

s = FormatDateTime(d, vbLongTime)
Debug.Print (s) ' 3:04:05

s = FormatDateTime(d, vbShortTime)
Debug.Print (s) ' 03:04

関連ページ