めも

パスワードを思い出したので、メモ再開

複数のMS-WordのドキュメントをPDFへ変換する

結論としては、pdfにしてからまとめればいいことにする。
まとめるのはスクリプトじゃできないから、個々にpdf化するスクリプトに変更した。
PDFにするのに変更履歴とかコメントが不要だったので、それも潰した。

本当は結合までしたかったけど、VBScriptでのやり方が分からない。
iTextSharpとpowershell使えばできるんだが、、、COMじゃないとVBSから呼べないし。
結局、pdfをまとめるのは、CubePDF Pageを使った。
自動化したかったらPDFtkを使えばいいし。

Option Explicit

' 検索対象ファイル拡張子
Dim targetFileExp
targetFileExp = Array("doc", "docx")

Dim objFso
Set objFso = CreateObject("Scripting.FileSystemObject")

Dim objWord
Set objWord = CreateObject("Word.Application")

Dim objDoc
Dim objView
Dim strInFile
Dim strOutFile

' 一応見せておく
objWord.Visible = True

' カレントディレクトリのファイルリストから抽出する
Dim exp
Dim file

For Each exp in targetFileExp
    For Each file In objFso.GetFolder("./").Files
        if UCase(objFso.GetExtensionName(file)) = UCase(exp) Then
            strInFile = file.path
            strOutFile = objFso.BuildPath( file.ParentFolder , objFso.GetBaseName(file.Name) & ".pdf" )

            WScript.Echo "PDF変換:" & file.Name

            Set objDoc = objWord.Documents.Open(strInFile)
            If Err.Number = 0 Then
                ' 変更履歴マージ
                objDoc.Revisions.AcceptAll
                ' 変更履歴オフ
                Set objView = objWord.ActiveDocument.ActiveWindow.View 
                objView.RevisionsView = 0               ' 0:wdRevisionsViewFinal
                objView.ShowRevisionsAndComments = False

                'PDF形式で保存
                objDoc.SaveAs2 strOutFile, 17           ' 17:PDF
                objDoc.Close
            Else
                WScript.Echo "エラー:" & Err.Description
            end if
        End If
    Next
Next

objWord.Quit

set objFso = Nothing
set objDoc = Nothing
set objWord = Nothing

MsgBox "終了"

はてな記法シンタックスハイライトにVBScriptが無いので、vbで表示