【VBA】一つのExcelファイル内の複数シートから任意の値を取得して一つのCSVに集約する

関連記事も合わせてご覧ください。
【VBA】Excelマクロの基本的な使い方
【VBA】列番号をアルファベットに変換する

サンプルコード

Sub main()

    Dim exApp As Object
    Dim exWkb As Object
    Dim wsCurrent As Object
    Dim sAddress As String
    Dim sName As String
    Dim sTel As String

    ' Excel起動
    Set exApp = CreateObject("Excel.Application")
    
    ' CSVファイル作成
    Open "sample.csv" For Output As #1
    
    ' CSVファイルにヘッダーを出力
    Print #1, "住所, 氏名, 電話番号"
    
    Set exWkb = exApp.Workbooks.Open(Filename:="sample.xlsx", ReadOnly:=True)

    ' シートの数だけ処理を繰り返す
    For i = 1 To exWkb.Worksheets.Count

        ' i番目のシートを処理対象とする
        Set wsCurrent = exWkb.Worksheets(i)

        ' 指定セルからテキストを取得
        sAddress = wsCurrent.Range("A1").Text
        sName = wsCurrent.Range("B1").Text
        sTel = wsCurrent.Range("C1").Text
        
        ' CSVファイルに書き込み
        Print #1, sAddress; ","; sName; ","; sTel;

    Next

    ' Excelを閉じる
    exWkb.Close
    
    ' Excel終了
    exApp.Quit
    
    ' CSVファイルを閉じる
    Close #1

End Sub


補足

「特定のシートだけ処理したい or 処理したくない」といった場合にはシート名などで処理分岐が可能。例として以下の通り。

' シート名が「backup」の場合は処理対象外とする
If (wsCurrent.Name <> "backup") Then
    ~~~~~~~~~~
End If