【VBA】日付型を文字列にする|Format
作成日:2022-11-01
更新日:2025-10-06

Formatを
使う
使う
Format|「意図した見た目」にできる
Sub Test_DateTime_Format()
Dim d As Date
Dim s As String
' ① 時刻だけ
d = "9:00"
s = Format(d, "hh:mm:ss") '09:00:00
s = Format(d, "hhmm") '0900
' ② 日付だけ
d = "2025/10/06"
s = Format(d, "yyyy/mm/dd") '2025/10/06
s = Format(d, "yyyymmdd"). '20251006
' ③ 日付+時刻
d = "2025/10/06 9:00"
s = Format(d, "yyyy/mm/dd hh:mm:ss") '2025/10/06 09:00:00
s = Format(d, "yyyymmdd_hhmmss") '20251006_090000
End Sub

好きな形にフォーマットできる
補足|Cstrはロケール依存のため不正確
dim d as date
dim strD as string
d = "9:00"
strD = CStr(d)結果:”9:00″
※ OS依存のため、次のような結果になることもある"09:00:00"
“9:00:00 AM”

文字列だけど、見た目の指定はできない
Vocabulary
| Date Type|日付型 |
| CStr Function|CStr関数 |
| Format Function|Format関数 |
| Locale Dependency|ロケール依存性 |
| String Conversion|文字列変換 |

逆パターンはこちら
When consistency matters, always format explicitly.

同じ処理をPythonでも書いてみよう
2022-11-01
編集後記:
この記事の内容がベストではないかもしれません。
記事一覧
-

[VBA]画像として貼り付けCopyPicture 【VBA】セル範囲を画像としてコピーする|CopyPicture -

Let と Getで読み取り専用 【VBA】クラスのプロパティを読み取り専用にするLet と Getの書き方 -

クラスでForEachを使いたい 【VBA】クラスで通常のCollection機能を利用する準備|ForEachが使えない -

[VBA]Cells or Range 【VBA】.Cells と .Range の使い分け目安|数千か数万か -

[VBA]close booksave or not 【VBA】ブックを閉じる3つの方法|保存して/保存しないで/ブック名で/ -

[VBA]Vertical Paste1D array 【VBA】一次元配列を縦方向にシートに貼り付け【範囲をリサイズする】