Excel

【Excel】VBAマクロでcsvを一括読み込み・xlsxに変換・出力方法、及びxlsxからcsvに変換・保存方法【FileDialog、Workbooks.Open、SaveAs】

当サイトでは記事内に広告を含みます

この記事では、ExcelのVBAマクロを使用して、csvを一括で読み込み、xlsxに変換・出力する方法、及びxlsxをcsvに変換・保存する方法について解説していきます。

ポイントとしては、FileDialogを使用してファイルやフォルダを選択する方法、Workbooks.Openでファイルを開く方法、SaveAsでファイル形式を変えて保存する方法を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名を少々変わった名称にしております。

そのため、実際に使用する際には、変数名を適切なものに変更してくださいね。

それでは詳しく見ていきましょう!

VBAマクロでcsvを一括読み込み・xlsxに変換・出力方法(フォルダ内の全て取り込み、ダイヤログでフォルダ指定)【FileDialog、Workbooks.Open】

それではまず、VBAマクロでcsvを一括読み込み・xlsxに変換・出力する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。


Sub CsvToXlsxKanryou()
    Dim faindaa As FileDialog
    Dim kensakuPath As String
    Dim hensuu As String

    ' ファイルを選択するダイヤログを表示
    Set faindaa = Application.FileDialog(msoFileDialogFolderPicker)
    If faindaa.Show = -1 Then
        kensakuPath = faindaa.SelectedItems(1) & "\"
        hensuu = Dir(kensakuPath & "*.csv")
        Do While hensuu <> ""
            Workbooks.Open Filename:=kensakuPath & hensuu
            ActiveWorkbook.SaveAs Filename:=kensakuPath & Replace(hensuu, ".csv", ".xlsx"), FileFormat:=xlOpenXMLWorkbook
            ActiveWorkbook.Close
            hensuu = Dir()
        Loop
    End If
End Sub

コードのAlt+F8を押し、マクロ選択画面でCsvToXlsxKanryou関数を実行します。

このコードでは、まず`FileDialog`を使用してフォルダを選択します。

その後、選択したフォルダ内のcsvファイルを一つずつ開き、xlsx形式で保存していきます。

VBAマクロでxlsxを一括読み込み・csvに変換・保存方法(フォルダ内の全て取り込み、ダイヤログ使用)【FileDialog、SaveAs】

続いては、VBAマクロでxlsxを一括読み込み・csvに変換・保存する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。


Sub XlsxToCsvKanryou()
    Dim faindaa As FileDialog
    Dim kensakuPath As String
    Dim hensuu As String

    ' ファイルを選択するダイヤログを表示
    Set faindaa = Application.FileDialog(msoFileDialogFolderPicker)
    If faindaa.Show = -1 Then
        kensakuPath = faindaa.SelectedItems(1) & "\"
        hensuu = Dir(kensakuPath & "*.xlsx")
        Do While hensuu <> ""
            Workbooks.Open Filename:=kensakuPath & hensuu
            ActiveWorkbook.SaveAs Filename:=kensakuPath & Replace(hensuu, ".xlsx", ".csv"), FileFormat:=xlCSV
            ActiveWorkbook.Close
            hensuu = Dir()
        Loop
    End If
End Sub

コードのAlt+F8を押し、マクロ選択画面でXlsxToCsvKanryou関数を実行します。

このコードは、先ほどのcsvをxlsxに変換するコードと似ていますが、今度は逆にxlsxファイルをcsvに変換して保存しています。

まとめ

最後に、この記事の内容をしっかりと理解し、日常業務などで活用していただけると幸いです。

ExcelのVBAマクロは非常に強力なツールですので、ぜひともマスターして、効率的な作業を目指してくださいね!