#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)

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS