Word文書を一括してPDFに変換する

拡張子.doc, .docx のWordファイルを、MS Wordの機能を使ってPDF化します。
Windowsで、PDF出力機能のあるバージョンのMS Wordが必要です。

使い方は、下のVBScriptをdoc2pdf.vbsのように拡張子.vbsのテキストファイルで保存します。
(保存はShift_JISかUTF-16で)
そのVBScriptファイルまたはショートカットに変換したいWordファイルをドラッグ&ドロップします。

複数ファイルドラッグしてもOKですが、WordファイルごとにPDFファイルに変換されます。
Wordの操作にはVBScriptを使っています。

Dim objFSO, objWord, objDoc, objArgs, FileName, FolderName, OutPutFile
Set objArgs = WScript.Arguments
If objArgs.Count=0 Then
  MsgBox "Wordファイルをドラッグしてください。" & vbCrLf & "PDFに変換します"
  WScript.Quit
End If

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

j = 0
For Each FileName In objArgs
  FolderName = objFSO.GetParentFolderName(FileName)
  Select Case LCase(objFSO.GetExtensionName(FileName))
  Case "doc","docx","txt","html"
    Set objDoc = objWord.Documents.Open (FileName)
    OutPutFile = objFSO.BuildPath(FolderName, objFSO.GetBaseName(FileName) & ".pdf")
    objDoc.SaveAs CheckFilePath(OutPutFile), 17
    'objDoc.SaveAs objFSO.BuildPath(FolderName, objFSO.GetBaseName(FileName) & ".docx"), 16
    objDoc.Close False
  j = j + 1
  End Select
Next

objWord.Quit

Set objFSO = Nothing
Set objDoc = Nothing
Set objWord = Nothing
MsgBox j & "個のファイルを変換しました"

'同じファイル名がある場合は(1)をつける
Private Function CheckFilePath(FilePath)
  Dim tmpFolderPath, tmpFileName, tmpExtName, tmpFilePath
  If objFSO.FileExists(FilePath) then
    tmpFolderPath = objFSO.GetParentFolderName(FilePath)
    tmpFileName = objFSO.GetBaseName(FilePath)
    tmpExtName = objFSO.GetextensionName(FilePath)
    If Not Left(tmpExtName, 1)="." then tmpExtName = "." & tmpExtName
    For i = 1 to 1000
      tmpFilePath = objFSO.BuildPath(tmpFolderPath, tmpFileName & "(" & i & ")" & tmpExtName)
      If Not objFSO.FileExists(tmpFilePath) then Exit For
    Next
  Else
    tmpFilePath = FilePath
  End If
  CheckFilePath = tmpFilePath
End Function

Case “doc”,”docx”,”txt”,”html”の行ですが、ここはWordで読み込めるファイル形式を入れています。
17の数字は、PDF形式を指定します。
他にも、4はテキストファイルへ、8はHTMLファイルへの変換といった意味があります。

これとPDF⇒JPGのVBScriptを合わせれば、Wordファイルを一括して画像ファイルに変換することが可能になりますね。

タイトルとURLをコピーしました