PeaceJetのブログ

金融系の社内エンジニアをやりながら、マーケティングやプランナーなども

ワークシートごとにCSVファイルを作成する。後編【エクセルマクロ・VB・VBA】

前編では、ワークシートごとにCSVファイルを作成する方法として、
プロシージャを作りました。

今回は、後編としてプロシージャの使い方を見ていきます。

プロシージャ呼ぶための親プロシージャを作成することで、
使用することができます。

前編で作成したプロシージャは引数に シートネーム を入れるだけなので、難しくありません。

特手のシートを選んで、CSVファイルを作成する。

Sub まとめてCSV作成()

    'シートネームがSheet1やSheet2であれば、
    'ダブルクォーテーションマークで囲んで以下のように書きます。
    Call CSV作成("Sheet1")
    Call CSV作成("Sheet2")

    '特定の名前に変えてあっても、上記と同様に書きます。
    Call CSV作成("メールリスト")
    Call CSV作成("見込みリスト")
    
End Sub

ブックにあるシートすべてをCSVファイルにする。

Sub まとめてCSV作成2()

    Dim i, WorksheetCount As Integer
    
    'ActiveWorkbookを使用していますので、適宜、変更してください。
    WorksheetCount = ActiveWorkbook.Sheets.Count
    
    For i = 1 To WorksheetCount
        
        Call CSV作成(Worksheets(i).Name)
    
    Next i
    
End Sub

上記をForEach文で書いてみましょう。

Sub まとめてCSV作成3()

    Dim Target As Worksheet
    
    For Each Target In Worksheets
    
        Call CSV作成(Target.Name)
        
    Next Target
    
End Sub