【VBA】CSVファイルをバックグラウンドでPDF保存する方法
日々の業務で大量のCSVファイルを扱っている方も多いでしょう。手作業でのPDFへの変換は時間がかかりますし、ミスも起こりやすいです。そこでこの記事では、VBAを使用してCSVデータを自動的にPDFに変換し、バックグラウンドで処理を行う方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub CSVToPDF()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
' バックグラウンドモードに設定
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' シートを指定(ここでは「Sheet1」を使用)
Set ws = ThisWorkbook.Sheets("CSVData")
' 最終行を取得
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' 各行のデータをPDFに保存
For i = 1 To lastRow
With ThisWorkbook.BuiltinDocumentProperties("Title")
.Value = "CSV Data Page " & i
End With
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\path\to\output\file" & Format(i, "000") & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Next i
' バックグラウンドモードを解除
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。また、ファイルパスが存在するか確認してください。