• ベストアンサー

CSVファイルをxslに大量に変換する方法

CSVでデータ作成したものが有るのですが、これを普通のXLSに 変換したいのです。1個や2個なら簡単なのですが、大量に有り(1000個)、一気に出来ないものかと相談した次第です。 よろしく御願いします。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

一括してXLSに変換するマクロを書いてみました。 同じフォルダにあるCSVファイルを1つずつ開いて別フォルダにXLS形式で保存する、というのを繰り返す処理を行うマクロです。 ●前提 ・CSVファイルは全て同じフォルダにある。 ・ファイル名はすべて*.csvというふうに拡張子がCSVである。 ・CSVファイルの各フィールドはコンマで区切られている。 ・CSVファイル名に、拡張子の.csv以外の.(ピリオド)は含まれていない。 ●準備 ・CSVファイルがあるフォルダにXLSという名前のフォルダを作る。 ・Excelを起動し、適当に名前をつけて「CSVファイルがあるフォルダ」に保存する。 ・そのExcel上でAlt+F11を押してVBAの画面を出し、「挿入」>「標準モジュール」を選択する。 ・右の画面に以下のマクロをコピーして貼り付ける。 Sub Csv2Xls()  Application.ScreenUpdating = False  Dim WB As Workbook  Dim FN As String  Dim F As Integer  Dim i As Integer  F = ThisWorkbook.FileFormat  FN = Dir("*.csv")  Do While FN <> ""   i = i + 1   Application.StatusBar = i & "番目:" & FN & " 変換中"   Set WB = Workbooks.Open(FN)   WB.SaveAs "XLS\" & Left(FN, InStr(FN, ".")) & "xls", F   WB.Close   FN = Dir()  Loop  Application.ScreenUpdating = True  Application.StatusBar = "" End Sub ●実行 ・Alt+F11でExcelの画面に戻り、Alt+F8から上記のマクロ「Csv2Xls」を実行する。 ・CSVファイルがXLSファイルに変換されて、XLSフォルダに、XXX.csvというファイルならXXX.xlsというファイル名で保存される。 ●注意 ・実行中はステータスバー(一番下の部分)に、何個目のファイルを処理中か、ファイル名と一緒に表示されます。1000個もあると非常に時間がかかるかもしれませんが、進み具合はその表示を目安にしてください。 ・処理中はファイルを次々に開いて閉じて、というのを繰り返すためにタスクバーがちらちらしますが、気にしないでください。 ・途中で処理を止めたいときは、Ctrl+Breakキーを押してください。マクロの中断画面が出るので「終了」ボタンを押し、処理中のファイルが開いていたら閉じてください。 ・途中で止めて再度やりなおす(あるいは一度やったけどもう一度やりなおす)場合は、XLSフォルダのファイルは全て削除し、空にしてから実行してください。 何か不明な点がある場合や、あるいは希望通りの動作にならない、前提が違う、などの場合は補足をお願いします。

WATANABE_0
質問者

お礼

返事が遅れてしまい申しわけ有りません。 使用できることを確認しました。便利ですね。 ありがとうございます。私もマクロについて勉強してみたいと思います。

関連するQ&A