🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら

Q&A

解決済

1回答

13153閲覧

【EXCEL VBA】csvファイルへ変換すると日付のデータが元のExcelデータの表示の状態と異なって変換されてしまう

OORAN

総合スコア5

0グッド

0クリップ

投稿2019/10/21 13:28

複数のExcelファイルをCSVファイルへ変換する以下コードを作成し、ボタンで実行しています。

日付のデータが元のままで問題なく変換される場合もあるのですが、Excelの元データが何かしら影響しているのか、日付のデータが元のExcelデータの表示の状態と異なって変換されてしまう場合があります。

例えば2019/10/16とExcelでは表示されている日付が、以下コードでCSVファイルへ変換すると10/16/2019と/(スラッシュも含めて)全てテキストデータで入力されてきてしまいます。

csvに変換した後、AccessDBへインポートするので(日付・時刻形式)、/がテキストデータとして入っており、また年が一番後ろにきてしまうのも、インポートエラーになり困っています。

AccessDBへインポートする際、テキスト形式でインポートしても良いのですが、その場合は20191016のような年4桁月2桁日2桁の順番での数字の羅列としたいです。

どうぞよろしくお願いいたします。


Sub ExcelファイルをCSVへ変換()

Application.ScreenUpdating = False Dim OpenFileName As Variant OpenFileName = Application.GetOpenFilename _ ("Excelファイル,*.*", MultiSelect:=True) If Not IsArray(OpenFileName) Then MsgBox "キャンセルしました。": Exit Sub End If Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") ' インスタンス化 Dim n As Long '選択したファイル数、処理を繰り返す For n = LBound(OpenFileName) To UBound(OpenFileName) Dim wb As Workbook Set wb = Workbooks.Open(OpenFileName(n)) Dim strBaseName As String strBaseName = fso.GetBaseName(wb.Name) '拡張子を除くファイル名を取得 '同じファイル名で同じ階層にCSV形式で保存する wb.SaveAs _ Filename:=wb.Path & "\" & strBaseName, FileFormat:=xlCSV wb.Close SaveChanges:=False Set wb = Nothing 'いったん解放 Next n Application.ScreenUpdating = True MsgBox "終了しました。"

End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

SaveAs の引数に Local:=True を入れてください。

Workbook メソッド (Excel) | Microsoft Docs

投稿2019/10/21 21:48

Zuishin

総合スコア28669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

OORAN

2019/10/23 02:45

早速のご回答ありがとうございます。 Save Asの引数にLocal:=を追加したら、日付データの問題は解消されたのですが、別の問題が発生しました。なぜか変換されたCSVファイルがWindows上で開かれてきてしまいます。 複数ファイルを変換対象とした場合、変換ファイルの数だけ開かれてきてしまい全てを保存して閉じるという作業が発生してしまいました。 また、これは今回のSaveASの引数の修正とは関係なく発生してしまっているようですが、変換して保存されてくるファイルのファイル名が途中で切れてしまい(拡張子も)、データとして保存はされてくるのですが、ファイル形式が認識されていないので、途中で切れてしまったファイル名の修正+.csvの拡張子を追加する、という作業が必要になってしまいます。 上記2つを解消したいと思っています。 どうぞよろしくお願い致します。
Zuishin

2019/10/23 02:59

どちらも、今回のこの質問とは原因も対処法も全く異なる別の問題です。 また、手がかりが不足しているので、これだけの情報で解決するのは不可能です。 まず、この質問は解決したので解決済みにしてください。 そして、その作業を行っている環境やソースや詳しい情報などの手がかりを思いつく限り掲載した新しい質問を立ててください。 また、ソースを掲載する際には、マークダウンを使ってください。解決する可能性が上がります。
OORAN

2019/10/23 03:10

ありがとうございます。 別の問題として投稿したいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問