- ベストアンサー
CSVファイルをxslに大量に変換する方法
CSVでデータ作成したものが有るのですが、これを普通のXLSに 変換したいのです。1個や2個なら簡単なのですが、大量に有り(1000個)、一気に出来ないものかと相談した次第です。 よろしく御願いします。
- みんなの回答 (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フォルダのファイルは全て削除し、空にしてから実行してください。 何か不明な点がある場合や、あるいは希望通りの動作にならない、前提が違う、などの場合は補足をお願いします。
お礼
返事が遅れてしまい申しわけ有りません。 使用できることを確認しました。便利ですね。 ありがとうございます。私もマクロについて勉強してみたいと思います。