• ベストアンサー

エクセルVBAで日付の形式表示が出来ません

エクセル2000です。 sheet(1)のセルに日付データが代入されています。 そのデータををsheet(2)のセルに代入し、"NumberFormat"を使い表示形式を「**年**月**日」と設定しましたが実際のセルには左詰めで「**/**/**」と表示されてしまいます。 「**年**月**日」と表示させるにはどうしたらいいでしょうか?

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

  • ベストアンサー
  • wildcard
  • ベストアンサー率54% (54/100)
回答No.3

No.2ですが、一部間違えました(^^;;; Worksheets(2).Range("C" & mM).FormulaR1C1 = _ Worksheets(1).Range("B" & iI).Value Worksheets(2).Range("C" & mM).NumberFormat = _ "ggge年m月d日"  ではなく、正しくは Worksheets(2).Range("C" & mM).NumberFormat = _ "ggge年m月d日" Worksheets(2).Range("C" & mM).FormulaR1C1 = _ Worksheets(1).Range("B" & iI).Value です。

yaba77
質問者

お礼

ありがとうございます、出来ました。

その他の回答 (2)

  • wildcard
  • ベストアンサー率54% (54/100)
回答No.2

もしかすると日付データの入っている列が、文字列形式なのでは?その場合は下記のコードでokだと思います。 Sub Test() Dim mM As Integer, iI As Integer, endLine As Integer mM = 1 endLine = Worksheets(1).Range("A65536").End(xlUp).Row For iI = 1 To endLine Worksheets(2).Range("B" & mM & ":E" & mM).Value = _ Worksheets(1).Range("A" & iI & ":D" & iI).Value Worksheets(2).Range("C" & mM).FormulaR1C1 = _ Worksheets(1).Range("B" & iI).Value Worksheets(2).Range("C" & mM).NumberFormat = _ "ggge年m月d日" mM = mM + 1 Next iI End Sub

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

Sheet1のA1に日付データがあるとして、 Sub Test() With Worksheets("Sheet2").Range("A1")  .NumberFormat = "ggge年m月d日"  .Value = Worksheets("Sheet1").Range("A1").Value End With End Sub でどうでしょう?

yaba77
質問者

補足

すみません説明が不十分でした。 下記のプロシージャを実行すると、Worksheet(2)のC列が形式表示されないのです。 Sub Test() Dim mM As Integer, iI As Integer, endLine As Integer mM = 1 endLine = Worksheets(1).Range("A65536").End(xlUp).Row For iI = 1 To endLine Worksheets(2).Range("B" & mM & ":E" & mM).Value = _ Worksheets(1).Range("A" & iI & ":D" & iI).Value Worksheets(2).Range("C" & mM).NumberFormat = _ "ggge年m月d日" mM = mM + 1 Next iI End Sub