- ベストアンサー
format関数
format関数で 2003年 を 平成15年 に変換したいのですが・・・どなたか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Format(Now, "GGGE年MM月DD日 HH:NN:SS") で "平成15年11月06日 11:40:01" と出ます。 GGGが元号(明治・昭和・平成)で Eが和暦年です。 ちなみに Gは元号(M・S・H)で EEとすると一桁年に0を付与します(平成09年)
その他の回答 (1)
- Mizyu
- ベストアンサー率41% (245/593)
回答No.2
#1です。 「Now」は現在のシステム日付をDATE型で返却する関数です。 なので、Nowの部分にはDATE型でいれなくてはなりません。 というわけで回答は --------------------------------(コード) Dim iYear As Integer Dim sYear As String iYear = 2003 sYear = Format(CDate(CStr(iYear) & "/01/01"), "GGGE年") --------------------------------(結果) sYear = "平成15年" となります。 解説をしますと CDate関数は"YYYY/MM/DD"という形式になっている文字列をDATE型に変換する関数です。 CStr関数は数値を文字列に変換する関数です。 なのでCStr(iYear) & "/01/01"で、文字列"2003/01/01"を作り、それをDATE型に変換、 それに対しFormat関数にて元号表示に変換する、という形です。
質問者
お礼
Mizyuさん大変ありがとうございました。 回答を見させていただいて実行したところ、うまくいきました。 ありがとうございました。
補足
ありがとうございます。実際にやってみたのですが、now の部分を2003という文字で変換すると、明治38年になってしまいます。なぜでしょうか?