📘 Excel逆引き事典

【VBA】CSVファイルをエラー処理付きで別ブックとして保存する方法

毎日大量のデータを手作業でCSVファイルからエクセルに移動させている方、いませんか?この記事では、VBAを使ってCSVファイルをエラー処理付きで別のエクセルブックとして保存する方法を紹介します。これにより、業務効率が大幅にアップします。

サンプルコード

VBA
Option Explicit
Sub CSVToWorkbook()
    Dim ws As Worksheet
    Dim csvFilePath As String
    Dim wbCSV As Workbook
    Dim wbNew As Workbook
    
    ' ユーザーからCSVファイルのパスを取得
    csvFilePath = Application.GetOpenFilename(FileFilter:="CSV Files (*.csv), *.csv", Title:="CSVファイルを選択")
    If csvFilePath = "" Then Exit Sub
    
    On Error GoTo ErrorHandler
    ' CSVファイルを開く
    Set wbCSV = Workbooks.Open(csvFilePath)
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    ' 新しいワークブックを作成
    Set wbNew = Workbooks.Add
    
    ' CSVのデータを新しいワークブックにコピー
    For Each ws In wbCSV.Sheets
        ws.Copy After:=wbNew.Sheets(wbNew.Sheets.Count)
    Next ws
    
    ' 既存のワークブックを閉じる
    wbCSV.Close SaveChanges:=False
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    MsgBox "完了しました。", vbInformation
    Exit Sub
ErrorHandler:
    MsgBox Err.Description, vbExclamation
    If Not wbCSV Is Nothing Then wbCSV.Close SaveChanges:=False
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。それでも解決しない場合は、具体的なエラーメッセージを元に原因を探る必要があります。