• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelのマクロでデータ形式を容易に変更する方法)

Excelマクロでデータ形式を変更する方法

このQ&Aのポイント
  • 他人が作成したExcelファイルでデータ形式を変換する方法を教えてください。
  • データ形式を変更するマクロを作成し、セルに入力されている内容を分かりやすく表示するようにしたいです。
  • 現在、Cells(1, 1) = Format(Cells(1,1),"yyyy/m/d") というマクロを使用していますが、改善方法を教えてください。

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

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは 逆にするとどうなりますか? Cells(1, 1).NumberFormatLocal = "ggge年m月d日" Cells(1, 1) = Format(Cells(1, 1), "yyyy/m/d")

niftynejp
質問者

お礼

回答ありがとうございます。 試してみたところ 期待通りの結果となりました。 全く想定していなかった方法でした。 本当にありがとうございました。 しかし、最後に"yyyy/m/d"と指定しているのに なぜこうなるのでしょう。 不思議ですね。 だからこそ、この発想には ただただ敬服するのみです。 また何かありましたら よろしくお願いいたします。

その他の回答 (1)

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.2

Excel2016では、「H28/04/01」を起動してすぐにコピー&ペーストすると、「H28.4.1」となり、「表示形式」を見ると、何故か「標準」ではなく、「[$-ja-JP]ge.m.d」に、勝手になってしまっていました。 強制的に「標準」にすると、セル上の表示も値も「42461」となり、質問者のような状況にはならなかったのですが、以下のマクロで、思っておられることは実現できると思います。 いったん、「2016/4/1」の表示(yyyy/m/d)にして、それを、値として、同じセルに読み込み、その上で、表示形式を「ggge年m月d日」に設定しています。 Sub Test() Cells(5, 1).NumberFormatLocal = "yyyy/mm/dd" Cells(5, 1).Value = Cells(5, 1).Value Cells(5, 1).NumberFormatLocal = "ggge年m月d日" End Sub

niftynejp
質問者

補足

回答ありがとうございます。 試してみましたが セルの書式設定は ggge年m月d日 に変わっているにもかかわらず H28/04/01 と表示されたままでした。 なぜなのでしょうね。

関連するQ&A