VBScriptでWordファイルをPDFに変換する

投稿者: | 2016-01-29

ドラッグ・アンド・ドロップで受け取ったWordファイル(*.doc,*.docx)をPDFファイルに変換します。
f:id:Fio:20160129014717j:plain
一度に複数のファイルをまとめてドラッグしても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ファイルと同じフォルダに作成されるようにしています。