Hey Scripting Guy! BLOG(海外サイト) は今週はExcel特集をしているようです。
その中で、ExcelファイルをPDFとして保存する記事がありました。
ネタ元「Save a Microsoft Excel Workbook as a PDF File by Using PowerShell」
この記事のスクリプトをちょっと加工して、次のような関数を作成したので紹介します。
function Convert-Xls([string]$path, [switch]$xps) { $xlFixedFormat = "Microsoft.Office.Interop.Excel.xlFixedFormatType" -as [type] # Excelオブジェクトの作成 $objExcel = New-Object -ComObject Excel.Application $objExcel.Visible = $False $workbook = $objExcel.workbooks.Open($path, 3) $workbook.Saved = $True # ファイル名からフルパスを取得して拡張子を外す $fullpath = [System.IO.Path]::GetFullPath($path) $filepath = [System.IO.Path]::GetFileNameWithoutExtension($fullpath) if ( $xps ) { # XPSとして保存する $workbook.ExportAsFixedFormat($xlFixedFormat::xlTypeXPS, $filepath + ".xps") } else { # PDFとして保存する $workbook.ExportAsFixedFormat($xlFixedFormat::xlTypePDF, $filepath + ".pdf") } # Excelの終了 $objExcel.Workbooks.Close() [void]$objExcel.Quit }
この関数を使用すると、任意のExcelファイルからPDFやXPSファイルを作成することができます。
書式は
Convert-Xls PDFやXPSの作成元となるExcelファイルのパス [-XPS]
たとえば C:\Work\Test.xls からPDFを作成するには
Convert-Xls C:\Work\Test.xls
もしもXPSファイルを作成したい場合はスイッチパラメータ -XPS を使用して下記のように記述します。
Convert-Xls C:\Work\Test.xls -XPS
この関数を使用すれば、わざわざExcelを起動してPDFやXPSに保存し直す必要がなくなります。
ぜひお試しください。
コメント