PowerShellでExcelファイルをPDFに変換する

公開日:  

powershell excel


ExcelファイルをPDF形式に変換して保存するPowerShellスクリプトを紹介します。

環境

  • Windows 10
  • PowerShell 5.1

エクセルファイルをPDFに変換する

以下が動作するスクリプトです。
パラメーターとしてExcelファイルのパスを渡して実行します。Excelファイルと同じフォルダにPDFファイルが作成されます。

param(
    # パラメーターにExcelファイルパスを指定
    [parameter(mandatory)][string]$filepath
)

$fileitem = Get-Item $filepath

try {
    $excel = New-Object -ComObject Excel.Application
    $excel.Visible = $false
    $excel.DisplayAlerts = $false

    $wb = $excel.Workbooks.Open($fileitem.FullName)

    # 保存先PDFファイルパスを生成
    $pdfpath = $fileitem.DirectoryName + "\" + $fileitem.BaseName + ".pdf"

    # PDF形式で保存
    $wb.ExportAsFixedFormat([Microsoft.Office.Interop.Excel.XlFixedFormatType]::xlTypePDF, $pdfpath)

    $wb.Close()

    $excel.Quit()
}
finally {
    # オブジェクト解放
    $sheet, $wb, $excel | ForEach-Object {
        if ($_ -ne $null) {
            [void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($_)
        }
    }
}

ExportAsFixedFormatメソッドを使用することで、ExcelブックをPDF形式で保存することができます。第一引数に保存形式を指定し、第二引数に保存先のファイル名を指定します。

ExportAsFixedFormatメソッドではPDFの他にXPS形式でも保存することができます。他にもページ指定などのオプションもあるので気になる方はこちらを参照してみてください。

参考

ExportAsFixedFormat メソッド (Excel)



関連記事