大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAを使ってWordファイルをPDFファイルへ一括で変換する方法をご紹介します。PDFへ変換したいWordファイルが大量にあるときに便利です。

はじめに

訪問ありがとうございます。この記事ではExcel VBAを使ってWordをPDFへ一括変換する方法をご紹介します。

PDFへ変換したいWordファイルが大量にある場合やPDFへ変換する機会が多い場合に参考になるかと思います。

この記事で紹介すること

  • WordをPDFへ一括変換する方法

目次から見たい項目へ移動すると便利ですよ。

目次

Excel VBAでWordをPDFへ変換

WordファイルをPDFへ変換するExcel VBAコードを紹介します。

最初に結果から紹介します。

結果

PDFへ変換するWordファイルはこちらです。

変換するファイル

PDFへ変換するWordファイル

『TEST1.docx』というWordファイルをPDFへ変換します。

変換後

WordファイルをPDFへ変換した結果

『TEST1.pdf』というPDFが作成されています。

続いてWordファイルをPDFへ変換するExcel VBAコードについて説明していきます。

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ファイルを開きます。

'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ファイルのフルパスを指定します。

Wordアプリケーションを使うと手動で参照設定をする必要がないので便利です。

PDFのファイル名を指定

PDFのファイル名を指定します。

'PDFファイルのファイルパスを設定
Dim FilePathPDF
FilePathPDF = ThisWorkbook.Path & "\TEST1.pdf"

『ThisWorkbook.Path & "\TEST1.pdf"』というPDFのフルパスを指定しています。

WordをPDFへ変換

WordをPDFへ変換します。

'PDFへ変換
wDoc.ExportAsFixedFormat FilePathPDF, ExportFormat:=17

WordファイルをPDFへ変換しています。

ここでExportFormatに指定している『17』は、WdExportFormatPDFという意味にになります。

WdExportFormatPDFを指定したいのですが値が入らなかったので、数字の『17』を直接入力しています。

Wordファイルを閉じる

Wordファイルを閉じます。

'Wordファイルを閉じる
wDoc.Close

'Wordアプリケーションを閉じる
wdApp.Quit

PDF変換のためWordファイルとアプリケーションを開きましたので、WordファイルとWordアプリケーションを閉じて終了です。

Excel VBAでWordをPDFへ一括変換

Excel VBAで複数のWordファイルをPDFへ一括変換する方法をご紹介します。

まずは結果から紹介します。

結果

PDFへ変換するWordファイルはこちらです。

変換するファイル

PDFへ変換する複数のWordファイル

『TEST1.docx』~『TEST5.docx』のファイルを作成しました。

PDFへ変換した結果はこちらです。

変換後

複数WordファイルをPDFへ変換した結果

『TEST1.pdf』~『TEST5.pdf』のファイルが作成されていることがわかります。

ではExcel VBAコードです。

Excel VBAコード

複数の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ファイルを開きます。

'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ファイルを開いてオブジェクトに設定します。

〇〇はWordファイルのフルパスを設定します。

PDFのファイル名を設定

変換後のPDFのファイル名を設定します。

Wordのファイル名と同じファイル名にするためにWordファイルの拡張子なしのファイル名を取得します。

'拡張子なしのファイル名を取得
FileNameBase = Replace(FileName, ".docx", "")
FileNameBase = Replace(FileNameBase, ".doc", "")

とりあえず代表的なところでWordファイルから『.docx』、『.doc』を削除して拡張子なしのファイル名『TEST1』とかを取得しています。

'PDFファイルのファイルパスを設定
FilePathPDF = FolderPath & "\" & FileNameBase & ".pdf"

取得した拡張子なしのファイル名に『.pdf』をつけてPDFのファイルパスを設定します。

WordをPDFへ変換

WordをPDFへ変換します。

'PDFへ変換
wDoc.ExportAsFixedFormat FilePathPDF, ExportFormat:=17
変換後のフォーマットExportFormatに『17』を指定しています。『17』はPDFになります。

Wordファイルを閉じる

開いたWordファイルを閉じます。

'.docxファイルを閉じる
wDoc.Close

『〇〇.Close』で〇〇のファイルを閉じるというVBAコードになります。〇〇にはオブジェクトが入ります。

次のファイルを探索

次のファイルを探索します。

'次のファイルを指定
FileName = Dir()

『FileName = Dir()』でまだ探索していないファイル名を入力しています。

ファイルをすべて探索したら終了

ファイルをすべて探索したらDir()の値が空白になります。

Dir()が空白になったらDo Whileのループが終了します。

これですべてのWordファイルをPDFへ変換することができます。

最後にWordのアプリケーションを閉じます。

'Wordアプリケーションを閉じる
wdApp.Quit

Wordアプリケーションを開きましたので最後に閉じて終了です。

おわりに

WordファイルをPDFへ変換する方法について紹介しました。

今回説明したExcel VBAコードを使えばWordファイルを一括でPDFへ変換することができます。

変換したいWordファイルが大量にある場合やWordファイルをPDFへ変換する機会が多い場合に参考になるかと思います。

最後までご覧くださいましてありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す