大体でIT
大体でIT
2020/8/24
Excel VBAを使ってWordファイルをPDFファイルへ一括で変換する方法をご紹介します。PDFへ変換したいWordファイルが大量にあるときに便利です。
訪問ありがとうございます。この記事ではExcel VBAを使ってWordをPDFへ一括変換する方法をご紹介します。
PDFへ変換したいWordファイルが大量にある場合やPDFへ変換する機会が多い場合に参考になるかと思います。
WordファイルをPDFへ変換するExcel VBAコードを紹介します。
変換するファイル
『TEST1.docx』というWordファイルをPDFへ変換します。
変換後
『TEST1.pdf』というPDFが作成されています。
続いてWordファイルをPDFへ変換するExcel VBAコードについて説明していきます。
WordファイルをPDFへ変換するExcel VBAコードです。
'WordをPDFへ変換
Sub TEST1()
'PDFへ変換するWordのファイルパスを設定
Dim FilePath
FilePath = ThisWorkbook.Path & "\TEST1.docx"
'Wordアプリケーションを設定
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")
'Wordファイルを開く
Dim wDoc As Object
Set wDoc = wdApp.documents.Open(FilePath)
'PDFファイルのファイルパスを設定
Dim FilePathPDF
FilePathPDF = ThisWorkbook.Path & "\TEST1.pdf"
'PDFへ変換
wDoc.ExportAsFixedFormat FilePathPDF, ExportFormat:=17
'Wordファイルを閉じる
wDoc.Close
'Wordアプリケーションを閉じる
wdApp.Quit
End Sub
Wordファイルを開く
PDFファイル名を指定
WordをPDFへ変換する
Wordファイルを閉じる
Wordファイルを開く
'Wordアプリケーションを設定
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")
'Wordファイルを開く
Dim wDoc As Object
Set wDoc = wdApp.documents.Open(FilePath)
最初に『Set wdApp = CreateObject("Word.Application")』でWordアプリケーションのオブジェクトを設定します。
このオブジェクト『wdApp』を使って『Set wDoc = wdApp.documents.Open(〇〇)』でWordファイルを開きます。
Wordファイルを開きながら『wDoc』にWordファイルのオブジェクトを設定しています。
Wordアプリケーションを使うと手動で参照設定をする必要がないので便利です。
PDFのファイル名を指定
'PDFファイルのファイルパスを設定
Dim FilePathPDF
FilePathPDF = ThisWorkbook.Path & "\TEST1.pdf"
『ThisWorkbook.Path & "\TEST1.pdf"』というPDFのフルパスを指定しています。
WordをPDFへ変換
'PDFへ変換
wDoc.ExportAsFixedFormat FilePathPDF, ExportFormat:=17
ここでExportFormatに指定している『17』は、WdExportFormatPDFという意味にになります。
WdExportFormatPDFを指定したいのですが値が入らなかったので、数字の『17』を直接入力しています。
Wordファイルを閉じる
'Wordファイルを閉じる
wDoc.Close
'Wordアプリケーションを閉じる
wdApp.Quit
PDF変換のためWordファイルとアプリケーションを開きましたので、WordファイルとWordアプリケーションを閉じて終了です。
Excel VBAで複数のWordファイルをPDFへ一括変換する方法をご紹介します。
変換するファイル
『TEST1.docx』~『TEST5.docx』のファイルを作成しました。
変換後
『TEST1.pdf』~『TEST5.pdf』のファイルが作成されていることがわかります。
複数のWordファイルをPDFへ変更するExcel VBAコードです。
'WordをPDFへ一括変換
Sub TEST2()
'変換するフォルダを設定
Dim FolderPath
FolderPath = ThisWorkbook.Path
'一つ目のファイルを指定
Dim FileName
FileName = Dir(FolderPath & "\*")
Dim FilePathPDF
Dim FileNameBase
'Wordアプリケーションを設定
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")
'フォルダ内のすべてのファイルを探す
Do While FileName <> ""
'ファイルがWordファイルだった場合
If InStr(FileName, ".doc") > 0 Then
'Wordファイルを開く
Set wDoc = wdApp.documents.Open(FolderPath & "\" & FileName)
'拡張子なしのファイル名を取得
FileNameBase = Replace(FileName, ".docx", "")
FileNameBase = Replace(FileNameBase, ".doc", "")
'PDFファイルのファイルパスを設定
FilePathPDF = FolderPath & "\" & FileNameBase & ".pdf"
'PDFへ変換
wDoc.ExportAsFixedFormat FilePathPDF, ExportFormat:=17
'.docxファイルを閉じる
wDoc.Close
End If
'次のファイルを指定
FileName = Dir()
Loop
'Wordアプリケーションを閉じる
wdApp.Quit
End Sub
フォルダを指定
フォルダ内のファイルを指定
フォルダ内のファイルを探索
Wordファイルを開く
PDFのファイル名を設定
WordをPDFへ変換
Wordファイルを閉じる
次のファイルを探索
ファイルをすべて探索したら終了
フォルダを指定
'変換するフォルダを設定
Dim FolderPath
FolderPath = ThisWorkbook.Path
『ThisWorkbook.Path』で現在ファイルのフォルダをしてしています。
フォルダ内のファイルを指定
'一つ目のファイルを指定
Dim FileName
FileName = Dir(FolderPath & "\*")
『Dir()』を使ってフォルダ内のファイルのいづれか一つを取得できます。
ちなみに最初に指定できるファイルは任意に設定はできません。フォルダ内のいづれかのファイルが設定されます。
フォルダ内のファイルを探索
'フォルダ内のすべてのファイルを探す
Do While FileName <> ""
'次のファイルを指定
FileName = Dir()
Loop
『Do While』でフォルダ内のファイルをすべて探索するまでループします。
Wordファイルを開く
'Wordアプリケーションを設定
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")
'Wordファイルを開く
Set wDoc = wdApp.documents.Open(FolderPath & "\" & FileName)
先ほどと同じように『Set wdApp = CreateObject("Word.Application")』でWordアプリケーションを最初に開いてオブジェクトを設定します。
オブジェクト『wdApp』を使って『Set wDoc = wdApp.documents.Open(〇〇)』でWordファイルを開いてオブジェクトに設定します。
PDFのファイル名を設定
Wordのファイル名と同じファイル名にするためにWordファイルの拡張子なしのファイル名を取得します。
'拡張子なしのファイル名を取得
FileNameBase = Replace(FileName, ".docx", "")
FileNameBase = Replace(FileNameBase, ".doc", "")
とりあえず代表的なところでWordファイルから『.docx』、『.doc』を削除して拡張子なしのファイル名『TEST1』とかを取得しています。
'PDFファイルのファイルパスを設定
FilePathPDF = FolderPath & "\" & FileNameBase & ".pdf"
取得した拡張子なしのファイル名に『.pdf』をつけてPDFのファイルパスを設定します。
WordをPDFへ変換
'PDFへ変換
wDoc.ExportAsFixedFormat FilePathPDF, ExportFormat:=17
変換後のフォーマットExportFormatに『17』を指定しています。『17』はPDFになります。
Wordファイルを閉じる
'.docxファイルを閉じる
wDoc.Close
『〇〇.Close』で〇〇のファイルを閉じるというVBAコードになります。〇〇にはオブジェクトが入ります。
次のファイルを探索
'次のファイルを指定
FileName = Dir()
『FileName = Dir()』でまだ探索していないファイル名を入力しています。
ファイルをすべて探索したら終了
ファイルをすべて探索したらDir()の値が空白になります。
Dir()が空白になったらDo Whileのループが終了します。
これですべてのWordファイルをPDFへ変換することができます。
'Wordアプリケーションを閉じる
wdApp.Quit
Wordアプリケーションを開きましたので最後に閉じて終了です。
WordファイルをPDFへ変換する方法について紹介しました。
今回説明したExcel VBAコードを使えばWordファイルを一括でPDFへ変換することができます。
変換したいWordファイルが大量にある場合やWordファイルをPDFへ変換する機会が多い場合に参考になるかと思います。
最後までご覧くださいましてありがとうございました。