概要
エクセルの各シートそれぞれをPDFに出力したいということがあった。出力ボタンを押すと、各シートがPDFに出力されるものを作りました。PDFファイル名はシート名です。
環境
- Excel 2016
準備
- リボンに開発タブを表示する
コード
vba
'デスクトップへのパスを取得
Dim strDesktopFullPath As String
Dim varWSShell As Variant
Set varWSShell = CreateObject("WScript.Shell")
strDesktopFullPath = varWSShell.SpecialFolders("Desktop") & "\"
Set varWSShell = Nothing
'出力フォルダ(=デスクトップ)
Dim strOutputFolder As String
strOutputFolder = strDesktopFullPath
'ファイル名の設定およびpdf出力(Sheet2以降)
Dim strFileName As String
For n = 2 To Worksheets.Count
'セル(A2)が空のシートはpdf出力しない
If Worksheets(n).Cells(2, 1).Value <> "" Then
'ファイル名(=シート名)
strFileName = Worksheets(n).Name
'PDFに変換する
Worksheets(n).ExportAsFixedFormat Type:=xlTypePDF, Filename:=strOutputFolder & "\" & strFileName & ".pdf"
End If
Next
xlsmファイルは下記GitHubへアップしてあります。
https://github.com/i-chiaki/ExcelToPdf.git