[セルの書式設定] の [表示形式]が標準(日付ではない)で単なる文字列となっている「mm-dd-yyyy」や「mm/dd/yyyy」のデータをマクロで「yyyy/mm/dd」の日付データに一括変換するマクロを教えてください。
たとえば、日付データが列Aにある場合にはDATE関数で、
=DATE(RIGHT(A2,4),LEFT(A2,2),MID(A2,4,2))
でも変換可能ですが、対象ファイルが多数、各ファイルにも対象の列が多数、そしてファイルの更新頻度も多いため、DATE関数を使用することは現実的ではない事情があります。
このためマクロを使用して処理させたいです。
添付のサンプルの例で一括変更するマクロを教えてください。
なお、Excelは2007を使用しています。
No.1ベストアンサー
- 回答日時:
マクロといっても日付のデータであることをいちいち判断することも容易ではありません。
むしろ日付に変化したいセルの範囲を選んでから「区切り位置」の機能を使って変換してはどうでしょう。
例えばA1セルからA100セルにデータがあるとしたらそれらの範囲を選択したのちに「ホーム」タブの「データ」から「区切り位置」をクリックします。
表示の画面でウィザードの1/3画面、2/3の画面で「次へ」をクリックして最後の画面では列のデータ形式の項で「日付」にチェックを付けたのちに右の窓では MDY を選択してから「完了」ボタンをクリックします。
区切り位置の利用は知っていましたが、yyyy/mm/ddの形にしたかったので、その並びの日付のYMDが自分のやりたいことと思いこんでいました。結果、変わらず。
MDYの選択で対応できることが分かりました。
ありがとうございました。
No.5
- 回答日時:
質問者さんがお分かりになっていないと思う点は、ループをさせないと、マクロで実行しても何の意味もないということです。
「対象ファイルが多数、各ファイルにも対象の列が多数、そしてファイルの更新頻度も多い」としているにも関らず、それに関する具体的な情報が何も書かれていないということです。例えば、●ファイルを格納しているフォルダのツリー構造(フォルダ 1 つのみならその事実)、●ファイル命名の規則、●シートの構造、●シート命名の規則、●セルの配置、●これらの情報のファイル更新による変化、などなど。
DATE 関数であろうがその他の方法であろうが、「yyyy/mm/dd」形式にする方法は、別に何だって構わないんです。たいへんな部分はそこじゃないので。
具体的な情報は書ききれないのでひとまず添付した図の例に対する模範例を拝借して、それから自分なりに考えてみるつもりでした。
知識と質問力不足、失礼しました。
No.4
- 回答日時:
No.3です。
No.1さんと同じ内容の投稿でした。
確認せずに投稿してごめんなさいね。m(_ _)m
ありがとうございます。
No1さんへのお礼の中で触れましたが、区切り位置の日付の仕様を十分理解していませんでした。
ご回答内容でも対応できることが分かりました。
No.3
- 回答日時:
こんにちは!
今回の場合はマクロとか関数で処理する方法でなく、
手を動かす方法が一番簡単だと思います。
A列すべてを範囲指定 → データ → 区切り位置 → 何もせず「次へ」を2回 → 「日付」を選択
→ その右側の欄が「YMD」となっていると思いますので、下向き▼から「MDY」を選択 → 「完了」
>対象ファイルが多数、各ファイルにも対象の列が多数
とありますが、上記の操作はマクロでも可能です。
しかし、実データの配置等が判らないとここでコードを載せても意味がありません。
※ どうしてもマクロで行いたい場合は一旦マクロの記録にとって実データに合わせてコード変更すればOKだと思います。
参考になりますかね?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- MySQL SQLについて質問です。 SELECT TO_CHAR(TO_DATE('90-10-08.'YY- 4 2022/05/13 20:55
- Excel(エクセル) 年月表示を取り出すには 5 2023/02/23 22:51
- Excel(エクセル) Excel 数行を1組とする300組ほどあるデータの項目を揃えたいです。 3 2023/01/26 19:38
- Excel(エクセル) エクセルの数式で教えてください。 2 2022/12/23 14:57
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Access(アクセス) Accessのデータ型の日付/時刻型について 1 2023/04/02 17:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
Excelでセル内の数式は残し値だ...
-
エクセル VBA 小数点を含む数字...
-
Excel にて非表示行を探すワー...
-
「マクロ」の足し算の式を教え...
-
Excelで連続印刷をするマクロ
-
エクセルで、行ごとの並び替え...
-
エクセルで全ての数字間にカン...
-
値貼り付けをしても書式も貼り...
-
excel ある部分だけをコピペし...
-
Excel(VBA)データ入力に応じて...
-
Excelで更新日を自動的に入れたい
-
Excelで周期的に列を削除する方法
-
EXCEL マクロで「キーワード入...
-
スプレッドシートの関数VLOOKUP...
-
Excelで同じシートのコピーを一...
-
EXCEL:同じセルへどんどん足し...
-
エクセルでファイルを開いたと...
-
前の(左隣の)シートを連続参...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
「マクロ」の足し算の式を教え...
-
Excelで連続印刷をするマクロ
-
Excelでセル内の数式は残し値だ...
-
エクセル VBA 小数点を含む数字...
-
エクセルで、行ごとの並び替え...
-
エクセルで全ての数字間にカン...
-
Excel(VBA)データ入力に応じて...
-
Excel にて非表示行を探すワー...
-
Excel2007 セルを右方向に削除...
-
VBA コピーを有効行までループ...
-
Excelで周期的に列を削除する方法
-
excel ある部分だけをコピペし...
-
wordのvbaでハイパーリンク設定...
-
エクセルで連番をマクロで
-
値貼り付けをしても書式も貼り...
-
エクセル マクロ オートシェ...
-
Excel 2013 文字列内の文字重複...
-
並べ替えのマクロで対象行の範...
おすすめ情報