- 締切済み
Excel VBA 日付フォーマットを統一したい
Excel VBAについてお教え下さい。Excel2010を使用しています。 A列に下記のようなデータが入っています。 20141130 20141201 B列に下記のようなデータが入っています。 2014/11/30 2014/12/01 C列にA列の値を変換して表示したいと思っています。 20141130 ⇒ 2014/11/30 20141201 ⇒ 2014/12/01 D列にB列の値を変換して表示したいと思っています。 2014/11/30 ⇒ 20141130 2014/12/01 ⇒ 20141201 下記のようなコードを書いてC列を埋めようと思いました。エラーメッセージが出て、オーバーフローしましたというメッセージでした。 For i To 100 Format(ThisWorkbook.Worksheets("データ").Cells(i, 3).Value, "yyyymmdd") Next i さらに、D列を埋めようと下記のコードを書きました。 Format(ThisWorkbook.Worksheets("データ").Range("D" & i).Value, "@@@@/@@/@@") そうしたら、2014/12/1 といったように、桁数が足りなく、「01」となりません。 質問 やりたい事はA列、B列をどちらかのフォーマットで統一したいと思っています。 どのようなコードを書けば問題は解決されるでしょうか? よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- mt2008
- ベストアンサー率52% (885/1701)
Excelで日付を扱うなら、日付のシリアル値で統一した方が良いです。 そして表示フォーマットはセルの書式で合せます。 > Format(ThisWorkbook.Worksheets("データ").Range("D" & i).Value, "@@@@/@@/@@") > そうしたら、2014/12/1 といったように、桁数が足りなく、「01」となりません。 コードはあまり宜しくありませんが、これでD列に日付のシリアル値でデータが入りました。 #Excelは、日付と判別できる文字列を気を利かせて日付のシリアルとして扱います。 あとはセルの書式のユーザー定義で「yyyy/mm/dd」と設定してください。 VBAでやるなら↓です。 ThisWorkbook.Worksheets("データ").Range("D1:D100").NumberFormatLocal = "yyyy/mm/dd"