アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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フォルダのファイルは全て削除し、空にしてから実行してください。

何か不明な点がある場合や、あるいは希望通りの動作にならない、前提が違う、などの場合は補足をお願いします。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/02/27 12:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!