• ベストアンサー

和暦、西暦の変換について(VBA)

こんにちは、VBAで西暦年から和暦年への変換でエラーが出て原因がよく分かりません。 下のようにして、変換してやろうとしてもyear1,month1,day1の型が違いますとかのエラーが出て、変数の型をInteger、String、 Variantでとろうとしてもエラーばかりです、宜しくお願いします。 もっと簡単に出来る方法があると思うのですが、よく分かりません。 曜日まで「平成○年○月○日(木)」というような表示形式にしたいのです。 year1 = Year(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)")) month1 = Month(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)")) day1 = Day(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)")) youbi1 = Right(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)"), 4) - Right(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)"), 3) TextBox3.Value = "平成" + (year1 - 1988) + "年" + month1 + "月" + day1 + "日" + "(" + youbi1 + ")"

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

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

http://www.geocities.jp/okaway03170507/oka1303.htm まったくそのまんまの回答があります。

eiji_0035
質問者

お礼

有り難う御座いました ある日のシリアル値と別のシリアル値を引き算、足し算してこれを何日間として日に戻す関数はどのようなものでしょうか

その他の回答 (1)

  • myRange
  • ベストアンサー率71% (339/472)
回答No.2

Calendar1_Fがちゃんとした日付型になっている場合 >year1 = Year(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)")) 曜日まで変換しているのがエラーの原因ではないでしょうか。 year1 = Year(Format(Calendar1_F.Value, "yyyy/m/d")) それか、あっさりと year1 = Year(Calendar1_F.Value) また、曜日は youbi1 = Format(Calendar1_F.Value, "(aaaa)") で取得できます。 ●それから、個々の年、月、日を取得しなくていいなら次のような方法もあるかと。 TextBox3 = Format(Calendar1_F.Value, "ggge""年""m""月""d""日""(aaaa)")    

eiji_0035
質問者

お礼

有り難う御座いました