Microsoft Officeは標準でPDF化できることをご存じかと思います。
印刷機能のメニューから「Microsoft Print to PDF」を選択すれば良いですね?
でも、複数ファイルあった場合はいちいちファイルを開いて印刷してPDF、印刷してPDF…
と、ファイル数分行なう必要があります。ちょっとめんどくさいですよね。
VBSでWordとExcelファイルをPDFするコード
VBSで実装しました。1ファイルでも、複数ファイルあっても一括でPDF変換してくれます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
If WScript.Arguments.Length = 0 Then MsgBox "PDF化したいWord,Excelファイルをドラッグし、このファイルにドロップしてください", vbOKOnly + vbInformation, "ツールの使い方" WScript.Quit End If Set objFSO = CreateObject("Scripting.FileSystemObject") ' 各アプリケーションのインスタンスを事前に作成 Set objWord = CreateObject("Word.Application") Set objExcel = CreateObject("Excel.Application") For Each strArg In WScript.Arguments If objFSO.FileExists(strArg) Then fileExtension = objFSO.GetExtensionName(strArg) Select Case fileExtension Case "doc", "docx" ConvertToPDF strArg, "Word" Case "xls", "xlsx", "xlsm" ConvertToPDF strArg, "Excel" Case Else MsgBox " Word,Excelファイル以外はPDF変換できません。終了します。 ", vbOKOnly + vbInformation, "ツールの使い方" WScript.Quit End Select End If Next ' アプリケーションを終了 objWord.Quit objExcel.Quit Sub ConvertToPDF(filePath, appType) ' 変換するファイルのパスを取得 sourceFilePath = filePath ' PDFファイルの出力パスを生成 pdfFilePath = objFSO.BuildPath(objFSO.GetParentFolderName(filePath), objFSO.GetBaseName(filePath) & ".pdf") ' ファイルを開く If appType = "Word" Then Set objDoc = objWord.Documents.Open(filePath) objDoc.ExportAsFixedFormat pdfFilePath, 17 objDoc.Close False ' ファイルを閉じる(変更を保存しない) ElseIf appType = "Excel" Then Set objWorkbook = objExcel.Workbooks.Open(filePath) objWorkbook.ExportAsFixedFormat 0, pdfFilePath objWorkbook.Close False ' ファイルを閉じる(変更を保存しない) End If End Sub MsgBox " PDF化終了しました " , vbOKOnly + vbInformation |
実際の動作はこんな感じ
簡単な仕様
- ドラッグアンドドロップすると同じフォルダにPDF化される
- 印刷の体裁のまま出力される
- Excelは全シート対象
- 右クリックメニューの送るに入れると便利(次の章で解説)
右クリックメニューの送るに入れると便利
以前にもお伝えしている方法を応用すれば、右クリックメニューで呼び出せます。
著作権等
プログラムをカスタマイズして2次利用する際は当ブログへのリンクをお願いします。
商用利用は禁止です。
参考にした動作
Excel仕事時短大学ch. 様の動作を参考にしました。
該当チャンネルの方はコード非公開&複数ファイル対応が有償だったため、自分で作ってみました。
残念ながらPowerPointは上手くいかなかったけど、今回必要なのはWordとExcelファイルだったのでまぁいいかなと。