• ベストアンサー

format関数

format関数で 2003年 を 平成15年 に変換したいのですが・・・どなたか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.1

Format(Now, "GGGE年MM月DD日 HH:NN:SS") で "平成15年11月06日 11:40:01" と出ます。 GGGが元号(明治・昭和・平成)で Eが和暦年です。 ちなみに Gは元号(M・S・H)で EEとすると一桁年に0を付与します(平成09年)

nakatanakanaka
質問者

補足

ありがとうございます。実際にやってみたのですが、now の部分を2003という文字で変換すると、明治38年になってしまいます。なぜでしょうか?

その他の回答 (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関数にて元号表示に変換する、という形です。

nakatanakanaka
質問者

お礼

Mizyuさん大変ありがとうございました。 回答を見させていただいて実行したところ、うまくいきました。 ありがとうございました。

関連するQ&A