Office関連

ドラッグ&ドロップしたOfficeファイルをPDFに変換するVBScript

複数のExcelファイルをPDFに一括変換する必要があったので、簡単なスクリプトを書いてみました。

Option Explicit

Dim fp
Dim fso
Dim args
Dim i

Const msoFalse = 0
Const msoTrue = -1
Const xlTypePDF = 0
Const xlQualityStandard = 0
Const wdExportFormatPDF = 17
Const wdExportOptimizeForPrint = 0
Const wdExportAllDocument = 0
Const wdExportDocumentContent = 0
Const wdExportCreateWordBookmarks = 2
Const wdDoNotSaveChanges = 0
Const ppSaveAsPDF = 32

Set fso = CreateObject("Scripting.FileSystemObject")
Set args = WScript.Arguments

If args.Count < 1 Then
  MsgBox "当スクリプトにファイルをドラッグ&ドロップして処理を実行してください。", vbExclamation + vbSystemModal
  WScript.Quit
End If

For i = 0 To args.Count - 1
  fp = fso.GetParentFolderName(args(i)) & ChrW(92) & fso.GetBaseName(args(i)) & ".pdf"
  Select Case LCase(fso.GetExtensionName(args(i)))
    Case "doc", "docx", "dotm" 'Wordファイル処理
      With CreateObject("Word.Application")
        .Visible = True
        With .Documents.Open(args(i))
          .ExportAsFixedFormat fp, wdExportFormatPDF, False, wdExportOptimizeForPrint, wdExportAllDocument, , , _
                                   wdExportDocumentContent, False, False, wdExportCreateWordBookmarks, True, True, False
          .Close wdDoNotSaveChanges
        End With
        .Quit
      End With
    Case "xls", "xlsx", "xlsm" 'Excelファイル処理
      With CreateObject("Excel.Application")
        .Visible = True
        With .Workbooks.Open(args(i))
          .ExportAsFixedFormat xlTypePDF, fp, xlQualityStandard, False, False, , , False
          .Close False
        End With
        .Quit
      End With
    Case "ppt", "pptx", "pptm" 'PowerPointファイル処理
      With CreateObject("PowerPoint.Application")
        .Visible = True
        With .Presentations.Open(args(i))
          .SaveAs fp, ppSaveAsPDF, msoTrue 'ExportAsFixedFormatはエラーになったためSaveAs使用
          .Close
        End With
        .Quit
      End With
  End Select
Next

MsgBox "処理が終了しました。", vbInformation + vbSystemModal

ついでにWordやPowerPointにも対応させたのですが、PowerPointの場合は、ExportAsFixedFormatメソッドを使おうとすると「型が一致しません」エラーが発生したため、SaveAsメソッドを使うことにしました。

アイカツ!オフィシャルショップ浅草ROX店に行ってきました。前のページ

アイカツフレンズ!はじめました。次のページ

関連記事

  1. Office関連

    Outlookの予定本文の一部を文字装飾するVBAマクロ

    Outlookの予定本文の一部をマクロで太字にしたい」との質問がありま…

  2. Office関連

    Excel REST APIをPowerShellから呼び出す方法

    以前Excel REST APIをVBAから呼び出す方法を紹介しました…

  3. Office関連

    Officeアプリケーションのバージョン情報ダイアログから情報を取得するVBScript

    自分の手間を減らすためのスクリプトシリーズ、今回はWordやExcel…

  4. VBScript

    WordPressのバックアップを取ってローカル環境で動かす方法(3)

    「WordPressのバックアップを取ってローカル環境で動かす方法(1…

  5. アイコン一覧

    Office 2013 アイコン一覧(I)

    ・Office 2013 アイコン一覧 NUM…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP