
複数のcsvファイルをExcelに一括変換したいです。
こちらのサイトを参考にしてVBAを実行しましたが上手く変換できたファイルと上手く行かないファイルがあります。
https://moripro.net/vba-convert-csv-to-excel/
上手く行かないファイルの名前は以下のように拡張子csvの前に「.dd」などが入っています。
aaa_bbbbb.ccc.dd.csv
ファイル名がまずいのはわかりますが、当面仕様上変更できません。
この状態で
aaa_bbbbb.ccc.dd.csv
を
aaa_bbbbb.ccc.dd..xls
に一括変換したいのですが、以下のコードのどこを変更したらよろしいでしょうか?
Sub main()
Application.ScreenUpdating = False
Dim OpenFileName As Variant
OpenFileName = Application.GetOpenFilename _
("CSVファイル,*.csv*", MultiSelect:=True)
If Not IsArray(OpenFileName) Then
MsgBox "キャンセルしました。": Exit Sub
End If
Dim fso As FileSystemObject
Set fso = New 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) '拡張子を除くファイル名を取得
'同じファイル名で同じ階層にExcel形式で保存する
wb.SaveAs _
Filename:=wb.Path & "\" & strBaseName, FileFormat:=xlWorkbookDefault
wb.Close SaveChanges:=False
Set wb = Nothing 'いったん解放
Next n
Application.ScreenUpdating = True
MsgBox "終了しました。"
End Sub
No.2ベストアンサー
- 回答日時:
こんにちは
「うまくいかない」としか記されていないので、実際がどうなっているのか不明ですけれど・・
推測するところ、「aaa_bbbbb.ccc.dd」というファイルが作成できているのではないでしょうか?
(無理矢理開けば、エクセルファイルとして開けると思いますが・・)
通常は、拡張子のないファイル名を指定して保存すれば、エクセルが拡張子を付加してくれますが、ご提示の場合はファイル名に既に拡張子らしきもの(この場合は .dd )が含まれているので、そのまま保存してしまうものと推測します。
もしも、起こっている現象がそのようなものであるなら、保存時に拡張子を明示して保存すれば宜しいでしょう。
wb.SaveAs _
Filename:=wb.Path & "\" & strBaseName & ".xlsx", FileFormat:=xlWorkbookDefault
※ 実態が不明なため推測で回答していますが、起きている現象がこれとは異なる場合は、原因は別なので、上記では解決できないと思われます。
説明が足らず失礼しました。はい、ご推測の通りです。Excelの拡張子も本当に使いたいのは.xlsではなく、.xlsxでした。おかげさまで上手く行きました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
このQ&Aを見た人はこんなQ&Aも見ています
-
性格悪い人が優勝
できるだけ性格悪い人になって回答をお願いします。
-
【お題】甲子園での思い出の残し方
【お題】「球場の砂を持って帰る」はもう古いと思った高校球児が、甲子園で負けた際に、思い出に残そうと思って行ったこと
-
最速怪談選手権
できるだけ短い文章で怖がらせてください。
-
はじめての旅行はどこに行きましたか?
記憶の中で1番昔の旅行先とエピソードを教えてください。
-
かっこよく答えてください!!
あなたは今にも別れそうなカップルの彼女の恋愛相談に乗っています。
-
大量のCSVファイルをExcel形式に変換する
Excel(エクセル)
-
複数のCSVファイルを自動でエクセルに変換したい
Excel(エクセル)
-
エクセル:6E-05という表現は?
数学
-
-
4
フォルダ内の全ブックのシート名を変更したいです。
Excel(エクセル)
-
5
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csvファイル 項目数取得
-
カンマ区切りのCSVファイルから...
-
マクロから出力されるcsvのダブ...
-
巨大なCSVの加工(指定列のみの...
-
バッチでCSVを処理する時、空の...
-
ASP(VBScript)について教えてく...
-
特定文字を入ってるCSVの特定の...
-
COBOLでCSVをインプットにして...
-
【C#】パス名で無効な文字
-
【エクセル マクロ】読み込ん...
-
PHP.laravelについて
-
EXCEL|csvで保存→開くcsvを閉じる
-
COBOL85でのCSVファ...
-
csvファイルでの日付設定「yyyy...
-
csvファイルの読み込みとOracle...
-
エクセルのプロパティーでセキ...
-
エクセルvbaでdocuworksprinter...
-
ファイルのアクセス回数について
-
ファイルサーバ上のファイルが...
-
エクセルで複数のコメントのサ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
バッチでCSVを処理する時、空の...
-
csvファイル 項目数取得
-
マクロから出力されるcsvのダブ...
-
CSV形式での保存時に”文字列...
-
複数のcsvファイルをExcelに一...
-
【ExcelVBA】UTF-8の文字コード...
-
【C#】パス名で無効な文字
-
エクセルVBA 大容量CSVファイル...
-
csvファイルでの日付設定「yyyy...
-
CSVファイルの項目行を削除...
-
VBAでcsvファイルを読み込んで...
-
csvファイルを列数ごとに分割す...
-
CSV出力して、MS/EXCELで開くと...
-
【エクセル マクロ】読み込ん...
-
複数のCSVファイルのAccessテー...
-
【エクセルVBA】お願いします。...
-
COBOL85でのCSVファ...
-
COBOLでCSVをインプットにして...
-
csvファイルのデータの一部を取...
おすすめ情報
どう上手く行かないのか、を書き忘れたので補足します。
aaa_bbbbb.ccc.dd.csv
が
aaa_bbbbb.ccc.dd
に変換されます。
つまり、末尾の「.dd」が拡張子として認識され、ファイルの種類はDDファイルになってしまいます。