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関連

    アクティブなIEのタブを閉じるVBAマクロ

    「VBA アクティブ IE タブ 閉じる」といったキーワード検索でのア…

  2. Office アドイン

    [Officeアドイン]テーブルやグラフを作成する方法(Excel)

    お久しぶりのOffice アドインの記事です。注目している人はほと…

  3. Office関連

    Google翻訳で文字列を翻訳するVBAマクロ(IE操作版)

    下記記事にあるように、ニューラルネット機械翻訳の導入によって、Goog…

  4. Office関連

    IEサポート終了でVBAマクロはどうなるの?

    ※下記情報は2021年5月時点の情報で、今後状況が変わっていく可能性が…

  5. Office関連

    VBAでインターネット上のファイルをダウンロードする方法をまとめてみました。

    「VBA ファイル ダウンロード」といったキーワード検索でのアクセスが…

  6. Office関連

    関数一覧(Excel 2010)

    関数の挿入ダイアログから抽出したExcel 2010の関数情報をリスト…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP