大体でIT

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

大体でIT

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

はじめに

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

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

この記事で紹介すること

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

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

目次

Excel VBAでExcelをPDFへ変換

Excel VBAでExcelをPDFへ変換する方法をご紹介します。

結果

まず初めにExcel VBAでExcelをPDFに変換した結果から紹介します。

変換するファイル

PDFへ変換する現在のファイル

変換するファイルは現在のファイルで、『TEST.xlsm』というマクロファイルです。

PDFに変換した結果です。

変換後

PDFへ変換した現在のファイル

PDFが作成されています。

Excelファイル内の全シートがPDFへ変換されます。

PDFへ変換したくないファイルはシートを非表示にしておくといいです。

Excel VBAのコードを説明します。

Excel VBAコード

ExcelをPDFへ変換するExcel VBAコードです。

'ExcelをPDFへ変換
Sub TEST1()
    
    'PDF変換後のファイルパスを指定
    Dim FilePathPDF
    FilePathPDF = ThisWorkbook.Path & "\TEST.pdf"
    
    'PDFへ変換
    ThisWorkbook.ExportAsFixedFormat 0, FilePathPDF
    
End Sub

説明していきます。

PDFのファイル名を指定

変換後のPDFのファイルパスを指定しています。

『ThisWorkbook.Path』で現在ファイルのフォルダパスを取得できます。

ExcelをPDFへ変換

現在のファイルをPDFへ変換しています。

これでExcelをPDFへ変換することができます。結構簡単ですね。

Excel VBAで別ブックのExcelをPDFへ変換

別ブックのExcelをPDFへ変換するExcel VBAコードを紹介します。

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

結果

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

変換するファイル

PDFへ変換する別ブックのExcel

『TEST1.xlsx』というExcelをPDFへ変換します。

変換後

別ブックのExcelをPDFへ変換した結果

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

続いて別ブックのExcelをPDFへ変換するExcel VBAコードについて説明していきます。

Excel VBAコード

別ブックのExcelをPDFへ変換するExcel VBAコードです。

'別ブックのExcelをPDFへ変換
Sub TEST2()
    
    'PDFへ変換するファイルパス指定
    Dim FullPath
    FullPath = ThisWorkbook.Path & "\TEST1.xlsx"
    
    'PDFへ変換するファイルを開く
    Workbooks.Open FileName:=FullPath
        
    'PDF変換後のファイルパスを指定
    Dim FilePathPDF
    FilePathPDF = ThisWorkbook.Path & "\TEST1.pdf"
    
    'PDFへ変換
    Workbooks(Dir(FullPath)).ExportAsFixedFormat 0, FilePathPDF
    
    'ファイルを閉じる
    Workbooks(Dir(FullPath)).Close
    
End Sub

手順は次のようになります。

  • Excelファイルを開く
  • PDFファイル名を指定
  • ExcelをPDFへ変換する
  • Excelファイルを閉じる

説明していきます。

Excelファイルを開く

最初に変換するExcelファイルを開きます。

'PDFへ変換するファイルパス指定
Dim FullPath
FullPath = ThisWorkbook.Path & "\TEST1.xlsx"

'PDFへ変換するファイルを開く
Workbooks.Open FileName:=FullPath

『Workbooks.Open FileName:=〇〇』で〇〇というExcelファイルを開くことができます。

〇〇にはExcelファイルのフルパスを指定します。

PDFのファイル名を指定

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

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

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

ExcelをPDFへ変換

ExcelをPDFへ変換します。

'PDFへ変換
Workbooks(Dir(FullPath)).ExportAsFixedFormat 0, FilePathPDF

先ほどと同じようにExcelをPDFへ変換しています。

Excelファイルを閉じる

Excelファイルを閉じます。

'ファイルを閉じる
Workbooks(Dir(FullPath)).Close

別ブックのExcelファイルを開きましたので最後にExcelファイルを閉じて終了です。

Excel VBAでExcelをPDFへ一括変換

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

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

結果

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

変換するファイル

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

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

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

変換後

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

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

ではExcel VBAコードです。

Excel VBAコード

複数のExcelファイルをPDFへ変更するExcel VBAコードです。

'複数Excelをpdfへ一括変換
Sub TEST3()
    
    'Excelファイルが保存されているフォルダを指定
    Dim FolderPath
    FolderPath = ThisWorkbook.Path
    
    'フォルダ内のファイルを指定
    Dim FileName
    FileName = Dir(FolderPath & "\*")
    
    Dim FilePathPDF
    Dim FileNameBase
    
    'フォルダ内のすべてのファイルを探す
    Do While FileName <> ""
        
        'Excelファイルで現在ファイルではない場合
        If InStr(FileName, ".xls") > 0 And FileName <> ThisWorkbook.Name Then
            
            'PDFへ変換するファイルを開く
            Workbooks.Open FileName:=FolderPath & "\" & FileName
                        
            '拡張子なしのファイル名を取得
            FileNameBase = Replace(FileName, ".xlsx", "")
            FileNameBase = Replace(FileNameBase, ".xlsm", "")
            FileNameBase = Replace(FileNameBase, ".xls", "")
            
            'PDF変換後のファイルパスを設定
            FilePathPDF = FolderPath & "\" & FileNameBase & ".pdf"
            
            'PDFへ変換
            Workbooks(FileName).ExportAsFixedFormat 0, FilePathPDF
            
            'ファイルを閉じる
            Workbooks(FileName).Close
            
        End If
        
        '次のファイルを指定
        FileName = Dir()
        
    Loop
    
End Sub

手順はこのようになってます。

  • フォルダを指定
  • フォルダ内のファイルを指定
  • フォルダ内のファイルを探索
  • Excelファイルを開く
  • PDFのファイル名を設定
  • ExcelをPDFへ変換
  • Excelファイルを閉じる
  • 次のファイルを探索
  • ファイルをすべて探索したら終了

では説明していきます。

フォルダを指定

フォルダを指定します。

'Excelファイルが保存されているフォルダを指定
Dim FolderPath
FolderPath = ThisWorkbook.Path

『ThisWorkbook.Path』で現在ファイルのフォルダをしてしています。

フォルダ内のファイルを指定

フォルダ内のファイルを指定します。

'フォルダ内のファイルを指定
Dim FileName
FileName = Dir(FolderPath & "\*")

『Dir()』を使ってフォルダ内のファイルを一つ指定できます。

ちなみに指定できるファイルは任意に設定はできません。

フォルダ内のファイルを探索

フォルダ内のファイルをすべて探索していきます。

'フォルダ内のすべてのファイルを探す
Do While FileName <> ""
    '次のファイルを指定
    FileName = Dir()
Loop

『Do While』でフォルダ内のファイルをすべて探索するまでループします。

Excelファイルを開く

Excelファイルを開きます。

'PDFへ変換するファイルを開く
Workbooks.Open FileName:=FolderPath & "\" & FileName

先ほどを同じように『Workbooks.Open FileName:=〇〇』でExcelファイルを開いていきます。

PDFのファイル名を設定

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

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

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

とりあえず代表的なところでExcelファイルから『.xlsx』、『.xlsm』、『.xls』を削除しています。

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

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

ExcelをPDFへ変換

ExcelをPDFへ変換します。

'PDFへ変換
Workbooks(FileName).ExportAsFixedFormat 0, FilePathPDF

フォーマットを指定してPDFへ変更しています。

Excelファイルを閉じる

Excelファイルを閉じます。

'ファイルを閉じる
Workbooks(FileName).Close

変換のために開いたExcelファイルを閉じます。

次のファイルを探索

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

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

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

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

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

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

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

おわりに

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

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

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

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

関連する記事から探す

カテゴリから探す

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

アーカイブから探す