[[20040223173001]] 『マクロで50ブックすべてCSVに変換したい』(masami) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロで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.