このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】日付型を文字列に変換する方法(表示形式を指定)

2024年5月30日

今回はVBAで日付型を文字列に変換する方法を紹介します。

文字列への変換にはFormat関数を使用します。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

日付型を文字列に変換する方法

Format(日付, "書式")

Format関数は上のように引数を設定して使います。

日付に日付型の変数を、書式に表示形式を指定することで文字列を得ることができます。

Sub Date2Str()
    '''日付型を文字列に変換
    
    Dim dt As Date
    dt = Date '今日
    
    Debug.Print Format(Date, "yyyy") '年
    Debug.Print Format(Date, "mm") '月
    Debug.Print Format(Date, "dd") '日付
    Debug.Print Format(Date, "yyyy年mm月dd日") '****年**月**日
End Sub

具体的にはこのようにFormat関数を使用します。

書式を変更することで年月日などを得ることができます。

一番最後のように****年**月**日といった文字列にすることもできます。

書式に使える表示形式

記号範囲
d1 〜 31 (前に 0 を付けない、月の日付)
dd01 〜 31 (前に 0 を付ける、月の日付)
w1 〜 7 (週の曜日。土曜日 = 1 から開始)
ww1 〜 53 (1 年のうちで何週目かを表す数値。前に 0 を付けず、1 月 1 日から開始。)
m1 〜 12 (月。前に 0 を付けず、1 月 = 1 から開始。)
mm01 〜 12 (月。前に 0 を付け、1 月 = 01 から開始。)
mmm月の省略名を表示 (イスラム暦の月の名前には省略形はありません)
mmmm完全な月名を表示
y1 〜 366 (1 年のうちで何日目かを表す数値)
yy00 〜 99 (西暦年の下 2 桁)
yyyy100 〜 9999 (3 桁または 4 桁の西暦年)
h0 〜 23 (「AM」または「PM」を追加した 1 〜 12 の数値) (前に 0 を付けない、1 日の中の時間)
hh00 〜 23 (「AM」または「PM」を追加した 01 〜 12 の数値) (前に 0 を付ける、1 日の中の時間)
n0 〜 59 (前に 0 を付けない、1 時間の中の分)
nn00 〜 59 (前に 0 を付ける、1 時間の中の分)
m0 〜 59 (前に 0 を付けない、1 時間の中の分)hまたはhhが先行する場合のみ
mm00 〜 59 (前に 0 を付ける、1 時間の中の分)hまたはhhが先行する場合のみ
s0 〜 59 (前に 0 を付けない、1分の中の秒)
ss00 〜 59 (前に 0 を付ける、1分の中の秒)
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/format-function-visual-basic-for-applications

書式に指定できる文字列はこのようなものがあります。

年月日だけではなく、時間なども書式に含めることができます。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい