#author("2023-11-12T15:28:23+09:00","","")
#navi(../)
* VBAのFormat関数を使って日付の書式を操作する [#uf861d81]
日付をyyyymmdd,時間付きのyyyymmdd hhmmss, 和暦にするサンプルを以下に記します。
#contents
#htmlinsert(office_ads_top.html)
* 動作確認環境 [#q8ea5104]
- Windows 10 22H2
- Microsoft® Excel® for Microsoft 365 MSO (バージョン 2310 ビルド 16.0.16924.20054) 32 ビット
* 関連サイト [#g6a8b64c]
-[[Microsoft Learn: Format 関数 (Visual Basic for Applications)>https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/format-function-visual-basic-for-applications]]
* yyyy/mm/dd hh:nn:ss に変換してみる [#y7a10da9]
年月日時分秒に変化するサンプルです。~
月と分が同じ mm になりますが、VBAは適切な処理をしてくれます。~
しかし、nn と記述することも可能なので、分は nn と記述したほうがわかりやすいですね。
** サンプルコード [#p4d1e384]
Option Explicit
Sub DateFormatSample()
Dim dt As Date
Dim fmt1 As String, fmt2 As String
Dim str1 As String, str2 As String
dt = Now
fmt1 = "yyyy/mm/dd hh:mm:ss"
str1 = Format(dt, fmt1)
fmt2 = "yyyy/mm/dd hh:nn:ss"
str2 = Format(dt, fmt2)
MsgBox (fmt1 & ": " & str1 & vbCrLf & fmt2 & ": " & str2)
End Sub
** 実行結果 [#j3938050]
上記サンプルコードの実行結果です。
#ref(01.png)
#br
* 和暦変換してみる [#i5cbd0fe]
和暦のフォーマットは以下のようにになります。
|~記号|~変換例|
|gggee|令和05|
|ggge|令和5|
|ggee|令05|
|gge|令5|
|gee|R05|
|ee|05|
|e|05|
** サンプルコード [#o39e8f4e]
Option Explicit
Sub DateFormatSample()
Dim dt As Date
dt = Now
MsgBox ( _
"Now: " & dt & vbCrLf & _
"gggee: " & Format(dt, "gggee") & vbCrLf & _
"ggge: " & Format(dt, "ggge") & vbCrLf & _
"ggee: " & Format(dt, "ggee") & vbCrLf & _
"gge: " & Format(dt, "gge") & vbCrLf & _
"gee: " & Format(dt, "gee") & vbCrLf & _
"ee: " & Format(dt, "ee") & vbCrLf & _
"e: " & Format(dt, "e") & vbCrLf _
)
End Sub
** 実行結果 [#ucb66756]
上記サンプルコードの実行結果です。
#ref(02.png)
#br
以上、Format関数を使って日付の変換と和暦への変換サンプルコードでした。
#htmlinsert(office_ads_btm.html)