D&Dで受け取ったWordファイルをPDFに変換する

投稿者: | 2016-10-22
ドラッグ・アンド・ドロップで受け取ったWordファイル(*.doc,*.docx)をPDFファイルに変換します。
一度に複数のファイルをまとめてドラッグしてもOKです。

MS Wordの機能を使ってますので、PDF保存に対応しているバージョンのWordがインストールされていることが必要にます。
まあ、最近のWordであればほぼ対応しています。
言い換えれば、Word以外に特別なソフトは必要ないと言うことです。

このスクリプトがどんなことをしているかと言いますと、

1. MS Wordをウラで起動する
2. ドラッグ・アンド・ドロップで受け取ったWordファイルのパスを取得
3. 拡張子が.docまたは.docxであればファイルを開く
4. 名前をつけて保存で、PDF形式で保存
5. ファイルを閉じ、ファイルが複数あれば次のファイルの処理にうつる

というようなことを、ウラで人目につかないようにしてやっています。

'D&Dで受け取ったWordファイルをPDFに変換します

Dim FS, objWord, objDoc, objArgs, FileName, FolderName
'実行時の引数を取得
Set objArgs = WScript.Arguments
If objArgs.Count=0 Then
  MsgBox "Wordファイルをドラッグしてください。" & vbCrLf & "PDFに変換します"
  WScript.Quit
End If

Set FS = CreateObject("Scripting.FileSystemObject")
Set objWord = CreateObject("Word.Application")
'objWord.Visible = True

j = 0
For Each FileName In objArgs
  FolderName = FS.GetParentFolderName(FileName)
  Select Case LCase(FS.GetExtensionName(FileName))
   '拡張子がdoc, docxの時だけ処理
   Case "doc","docx"
    Set objDoc = objWord.Documents.Open (FileName)
    '名前をつけて保存(PDFに)
    objDoc.SaveAs FS.BuildPath(FolderName, FS.GetBaseName(FileName) & ".pdf"), 17
    objDoc.Close False
   j = j + 1
  End Select
Next

objWord.Quit

Set FS = Nothing
Set objDoc = nothing
Set objWord = nothing

MsgBox j & "個のファイルを変換しました"

これをWord2PDF.vbsなどの拡張子.vbsのテキストファイルで保存し、変換したいファイルをエクスプローラからドラッグ・アンド・ドロップします。
なお、PDFファイルは、Wordファイルと同じフォルダに作成されるようにしています。