[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロで50ブックすべてCSVに変換したい』(masami)
エクセルファイルが50ブックくらいあるのですが それをすべてcsv変換したいのですが簡単に出来る 方法はありませんか? 一つ一つ変換していくのは面倒なので・・・・
あるフォルダ内の全てのxlsファイルをcsvにする等の処理は、 VBA(マクロ)を使えばできますよ。
(INA)
すみませんINAさんそのマクロを教えて頂きたいです (masami)
サンプルを掲載しておきますが、マクロは使い方によっては危険な物ですので、 コピペで使えるからと言って安心しないで ある程度は内容を理解してから使うようにして下さい。
Sub sample() Dim myObj As Object Dim myDir As String Dim myFileName As String Dim myFileList As String Dim myFileCount As Long Dim wb As Workbook
'フォルダ選択ダイアログの表示 Set myObj = CreateObject("Shell.Application"). _ BrowseForFolder(0, "フォルダを選択してください", 0) If myObj Is Nothing Then Exit Sub
myDir = myObj.Items.Item.Path If Right(myDir, 1) <> "\" Then myDir = myDir & "\"
'フォルダ内のExcelファイルを確認 myFileName = Dir(myDir & "*.xls")
Do While myFileName <> "" If myFileName <> ThisWorkbook.Name Then myFileList = myFileList & Chr(13) & myFileName myFileCount = myFileCount + 1 End If
myFileName = Dir() Loop
If myFileCount = 0 Then MsgBox "ファイルは見つかりませんでした。マクロを終了します。", 48 Exit Sub ElseIf vbNo = MsgBox(myFileCount & " 個の .xls ファイルが見つかりました。マクロを実行しますか?" _ & Chr(13) & myFileList, 4, "ファイル確認") Then MsgBox "キャンセルしました。" Exit Sub End If
'CSV処理 myFileName = Dir(myDir & "*.xls")
Do While myFileName <> "" Application.DisplayAlerts = False Application.ScreenUpdating = False
If myFileName <> ThisWorkbook.Name Then Set wb = Workbooks.Open(myDir & myFileName) wb.SaveAs Filename:=myDir & Left(myFileName, Len(myFileName) - 3) & "csv", _ FileFormat:=xlCSV wb.Close End If
myFileName = Dir() Loop
Application.DisplayAlerts = True Application.ScreenUpdating = True
MsgBox "完了しました。"
End Sub
(INA)
♪INA♪さん有難うございます また頼みたいのですがそのフォルダの中に出来たcsvファイルとは別に その50個のcsvを一つのブックにしたいです その50個のcsvはフォーマットが一つで350行と決まっています なので順不同でいいので1から350行目まで一つのファイル 351行から700行目までが2つ目のファイルというように そのフォルダのcsvすべてを一つのcsvにです ファイル名は”集計.csv”で良いです INA♪さんお願いします たのみます♪ (masami)
ご自分では、どこまで出来たのでしょうか? 前回の掲載させていただいたコードは、もう理解されたのでしょうか?
上記の処理をするにあたり、どの部分のマクロコードが分からないのですか?
ここは質問掲示板であり、マクロの作成を依頼する場所ではないと思いますが・・。
(INA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.