VBA・マクロツール

【知らなくても使える】Excelのシート毎に分けてPDF出力するアドイン(Excel VBA)

Excelで作成したデータをPDFファイルで保存または出力する際に、シート毎で複数のPDFファイルで保存したいと思った際に、Excelの標準機能では現状実現することができないかと思います。

 

そのため、一つのPDFファイルに保存する場合複数のPDFファイルに分けて保存する場合の2種類を使い分けることができるツール『Excelのシート毎に分けてPDF出力するツール』をExcel VBAのアドインで作成しました。

 

なお、アップデートしたツールも作成しましたので、良かったら参照ください。

【知らなくても使える】Excelのシート毎に分けてPDF出力するアドイン_パート2(Excel VBA) Excelで作成したデータをPDFファイルで保存または出力する際に、シート毎で複数のPDFファイルで保存したいと思った際に、Ex...

アップデート版の変更点は以下になります。

  1. ファイル名に値を追加する場所を「最初」と「最後」で選択できるようになりました。
  2. 追加する値を固定の値だけでなく、各シートのセル内の値から取得できるようになりました。

 

当記事にはマクロの元になるExcelファイルがダウンロード可能で、VBAのコードも記事内に記載がありますので、Excel VBAやマクロが良く分からないという方でもすぐに使用できます

当ツールを使用すれば定例業務の業務効率化が図れるかと思いますので、是非ご活用頂けたらと思います。

 

 

ツールの更新履歴

(2023年1月23日:更新)
・非表示のシートが存在する場合にPDF出力するとエラーになる不具合を修正しました。

『Excelのシート毎に分けてPDF出力するツール(アドイン)』の概要

ExcelにVBAコードを入れてマクロを作成し、アドインとして保存します。

 

そのアドインを取り込むとリボンに一つのPDFで保存するパターンと複数のPDFで保存するパターンとでタブが表示されるので、それぞれ該当するボタンを押すことでPDFファイルの出力方法を使い分けることができます

当ツールの使用方法

基本的な機能、操作方法の説明

  1. PDF出力したいExcelファイルを開きます。
  2. 「開発」タブの「Excelアドイン」より、作成したアドインファイルを指定(参照)します。

 

※選択するExcelアドインは、当ぺージ内のツールをダウンロードしてVBAコードを貼り付けて保存したアドインファイルを選択してください。

 

アドインを設定出来たら、上部リボンのタブに「PDFで保存」が追加されます。

 

❶:1つのPDFで保存(全シートを対象)

<手順1>

  1. リボン「PDFで保存」→「1つのPDFで保存」内にある「全シートを対象」クリックします。

 

<手順2>

  1. 保存先を選択してファイル名を入力します。
  2. 「保存」をクリックします。

※デフォルトのファイル名は「Excelファイル名称」+「.pdf」となっています

全シート分のExcelデータが一つのPDFファイルとして保存されました。

 

❷:1つのPDFで保存(指定したシートのみを対象)

<手順1>

  1. リボン「PDFで保存」→「1つのPDFで保存」内にあるシート名を入力して、「指定シートを対象」をクリックします。

 

<手順2>

  1. 保存先を選択し、ファイル名を入力して「保存」をクリックします。

※デフォルトのファイル名は「Excelファイル名称」+「.pdf」となっています

リボン内の指定シートを対象の「シート名」に入力したシートを対象にしてExcelデータが一つのPDFファイルとして保存されました。

 

なお、シート名にはワイルドカード(*、?など)を指定可能です。

 

❸:複数のPDFファイルで保存

<手順1>

  1. リボン「PDFで保存」→「複数のPDFで保存」内にある「先頭のファイル名称」に値を入力して、「全シートを対象」をクリックします。

 

<手順2>

  1. 保存先のフォルダを選択して「OK」をクリックします。

※複数PDFファイルが作成されるため、保存先のフォルダを選択します

リボン内で指定した「先頭のファイル名称」+「シート名」をファイル名とした複数のPDFファイルが保存されました。

 

リボンに表示されている文字等のデザインを変更する場合は、【解説】リボンに表示されたExcelアドインのデザインを変更する方法を参照ください。

 

留意事項

シート名はワイルドカードが使用可能

一つのPDFで保存する時に、指定シートを対象にしてPDF出力する場合は、シート名の指定で以下のワイルドカード( * や ? など)を指定できます。

  •  * :任意の数の文字と一致します。 文字列のどの場所でも使用できます。
  •  ? :指定した場所の任意の 1 文字と一致します。
  •  [ ] 角かっこ内の 1 文字と一致します。
  •  ! :角かっこ内の文字以外と一致します。
  •  - :範囲内の任意の文字と一致します。 (この範囲は昇順で指定)
  •  # :任意の 1 つの数字と一致します。

例)

  • 「R4*」→R4から始まるシートが対象 / 「*10月」→最後に10月がつくシートが対象
  • 「Sheet?」 →Sheet1、Sheet2が対象(Sheet10は対象外)
  • 「b[ae]ll」→ball と bell が対象(bill は対象外)
  • 「b[!ae]ll」→bill と bull は対象(ball や bell は対象外)
  • 「b[a-c]d」→bad、bbd、bcd が対象
  • 「1#3」→103、113、123 が対象

= 引用元:Microsoftサポート(ワイルドカード文字の例) =

 

使用する際の事前準備

このページの下部にある「Excelファイルのサンプル」からExcelファイルを取得し、「準備の手順」内にあるVBAコードを取得したExcelファイルに記載して保存すれば、すぐに当ツールを使用できます。

 

以下にその手順を説明していきます。

 

準備の手順

1.サンプルのダウンロードはこちら」からサンプル(Excelファイル)をダウンロードし、ファイルを開きます。

※インターネットにあるマクロファイルをダウンロードすることはセキュリティ上リスクがあるので、マクロ無しExcelファイルを公開しています

 

2.ダウンロードしたExcelファイルの上部にあるリボンの「開発」タブから「visual basic」を選択して、VBE(Visual Basic Editor)を起動させます。

 

リボンに「開発」タブが表示されていない場合は、以下を参照ください。

(参考サイト:記事「Excel VBAを始める前に、最初にやっておくべき初期設定内容はこれ」の『開発』タブを表示させる

 

3.「プロジェクト」に「標準モジュール」を追加して、追加された「Module1」にVBAコードを記載します。

 

以下にあるVBAコードを「Module1」内のエディターにコピーして貼り付けます。

 

VBAのソースコードはこちら

以下のVBAコードをコピーして、「Module1」内のエディターに貼り付けます。

※VBAコードの右上のアイコンをクリックするとソースコードをコピーできます

Option Explicit

'-----(メッセージ)-------------------
Private Const Msg1 = "PDfファイルを保存するフォルダを選択してください。"
Private Const Msg2 = "指定したシートが存在しません。"
'---------------------------------------

Dim TgtSheetNm As String
Dim TgtFileNm As String

'===================================
'全シートを対象にして1つのPDFに保存した際の処理
'===================================
Sub allSheetForOnePDF_click(control As IRibbonControl)

    Dim sheetCnt As Long: sheetCnt = ActiveWorkbook.Worksheets.Count
    Dim sheetNmArray() As String        'Excelブック内のシート名称(配列)
    ReDim sheetNmArray(1 To sheetCnt)
    Dim visShtCnt As Long               '表示中のシート数
    Dim i As Long
    
    '全てのシートを対象にするため配列に全シート名を格納する
    For i = 1 To sheetCnt
        If ActiveWorkbook.Sheets(i).Visible = True Then
            visShtCnt = visShtCnt + 1
            sheetNmArray(visShtCnt) = ActiveWorkbook.Sheets(i).Name
        End If
    Next i
    
    ReDim Preserve sheetNmArray(1 To visShtCnt)
    
    ''PDFファイル保存処理
    Call savePdf(sheetNmArray, 1)
    
End Sub

'===================================
'指定シートを対象にして1つのPDFに保存した際の処理
'===================================
Sub tgtSheetForOnePDF_click(control As IRibbonControl)

    Dim sheetCnt As Long: sheetCnt = ActiveWorkbook.Worksheets.Count
    Dim objSheet As Worksheet

    Dim sheetNmArray() As String
    ReDim sheetNmArray(1 To sheetCnt)
    Dim matchCnt As Long                '対象のシート名と一致するシート数
    
    'Excelファイル内で条件に一致するシートのみシート名を配列に格納する
    For Each objSheet In ActiveWorkbook.Worksheets
      
        If objSheet.Name Like TgtSheetNm Then
            If ActiveWorkbook.Sheets(objSheet.Name).Visible = True Then
                matchCnt = matchCnt + 1
                sheetNmArray(matchCnt) = objSheet.Name
            End If
        End If
      
    Next
    
    If matchCnt <> 0 Then
        ReDim Preserve sheetNmArray(1 To matchCnt)
    Else
        MsgBox Msg2
        Exit Sub
    End If
    
    ''PDFファイルの保存処理
    Call savePdf(sheetNmArray, 1)
    
End Sub

'===================================
'全シートを対象にして複数のPDFに保存した際の処理
'===================================
Sub allSheetForSomePDF_click(control As IRibbonControl)

    Dim sheetCnt As Long: sheetCnt = ActiveWorkbook.Worksheets.Count
    Dim sheetNmArray() As String        'Excelブック内のシート名称(配列)
    ReDim sheetNmArray(1 To sheetCnt)
    Dim visShtCnt As Long               '表示中のシート数
    Dim i As Long
    
    '全てのシートを対象にするため配列に全シート名を格納する
    For i = 1 To sheetCnt
        If ActiveWorkbook.Sheets(i).Visible = True Then
            visShtCnt = visShtCnt + 1
            sheetNmArray(visShtCnt) = ActiveWorkbook.Sheets(i).Name
        End If
    Next i
    
    ReDim Preserve sheetNmArray(1 To visShtCnt)
    
    ''PDFファイルの保存処理
    Call savePdf(sheetNmArray, 2, TgtFileNm)
    
End Sub

'-------------------------
'PDFファイルの保存処理
' 引数:sheetNmArray(対象のシート名が入った配列)
'       processCd(1:一つのPDFファイルで出力、2:複数PDFファイルで出力)
'    opFileNm(ファイル名の最初に付ける名称)※複数PDFファイルで出力する処理のみ
'-------------------------
Sub savePdf(sheetNmArray() As String, processCd As Long, Optional opFileNm As String = "")
    
    Dim selSheetNm As String
    selSheetNm = ActiveSheet.Name
    
    Dim objFileSys As Object
    Dim noExtensionFileName As String
    Dim fileName As Variant
    Dim sheetNm As Variant
    
    'ファイルシステムを扱うオブジェクトを作成
    Set objFileSys = CreateObject("Scripting.FileSystemObject")
     
    '拡張子無しのファイル名を取得
    noExtensionFileName = objFileSys.GetBaseName(ActiveWorkbook.FullName)
    
    '一つのPDFファイルに保存する場合の処理
    If processCd = 1 Then
    
        'PDFファイルの保存先とファイル名称を指定する
        fileName = Application.GetSaveAsFilename(InitialFileName:=noExtensionFileName, FileFilter:="PDF,*.pdf")
        If fileName <> False Then
        
            Worksheets(sheetNmArray).Select
            
            'PDF出力処理
            ActiveSheet.ExportAsFixedFormat _
                Type:=xlTypePDF, _
                fileName:=fileName
            
        End If
        
    '複数PDFファイルに保存する場合の処理
    Else

        Dim folderPath As Variant
        
        With Application.FileDialog(msoFileDialogFolderPicker)
            .AllowMultiSelect = False
    
            .Title = Msg1
            If .Show = True Then
                folderPath = .SelectedItems(1)
            Else
                Exit Sub
            End If
        End With
        
        For Each sheetNm In sheetNmArray
            
            If opFileNm <> "" Then
                fileName = folderPath & "\" & opFileNm & "_" & sheetNm & ".pdf"
            Else
                fileName = folderPath & "\" & sheetNm & ".pdf"
            End If
            
            Worksheets(sheetNm).Select
            
            'PDF出力処理
            ActiveSheet.ExportAsFixedFormat _
                Type:=xlTypePDF, _
                fileName:=fileName
                    
        Next
    End If
    
    Worksheets(selSheetNm).Select
        
End Sub

'-------------------------
'シート名に変更があった際の処理
'-------------------------
Sub onChangeSheetNm(control As IRibbonControl, text As String)
    TgtSheetNm = text
End Sub

'-------------------------
'シート名に変更があった際の処理
'-------------------------
Sub onChangeFileNm(control As IRibbonControl, text As String)
    TgtFileNm = text
End Sub

'-------------------------
'シート名を取得する際の処理
'-------------------------
Sub getSheetNm(control As IRibbonControl, ByRef returnValue)
    '処理なし
End Sub

'-------------------------
'ファイル名を取得する際の処理
'-------------------------
Sub getFileNm(control As IRibbonControl, ByRef returnValue)
    '処理なし
End Sub

 

4.ファイルを保存する際は「Excelアドイン(*.xlam)」を選択して、保存します。

これで事前準備は完了です。

あとは「基本的な機能、操作方法の説明」で記載された通り、アドインを「開発」→「Excelアドイン」→「参照」でExcelに取り込めばツールを使用できます。

 

なお、当マクロの開発環境は、OS:Windows10 、Excelソフトウェア:Microsoft Office 365となっており、当環境では動作確認ができていますが、他の環境で正常に動作するかは確認できていません。

正常に動作しない場合は、コメントいただければ幸いです。

 

 

また以下にて、このような業務効率化できるツールを機能ごとの一覧でまとめてますので、ご興味のある方はご覧ください。

 

自力で業務効率化できるツール等を作成する場合は、オンラインITスクール」を利用するとモチベーションを保ちつつ、効率的に学習とアウトプットができると思います。

\ 今なら1か月間全額返金保証!! /

上記の「侍テラコヤ」月額2,980円~ という日本最安級の料金でプログラミング学習ができ、今なら初めての方でも安心できる「1か月全額返金保証」があります

自分に合わないと感じた場合は返金してもらえるため、ノーリスクで試すことができます。是非一度体験してみることをオススメします ^ ^

 

ツールのダウンロードはこちら

下記よりExcelファイルをダウンロードして、記事の途中にありました VBAのソースコードをツール内に組み込んで使用してください。

【Excel VBA】Excelのシート毎に分けてPDF出力するツール

ツールのダウンロードはこちら
※インターネットにあるマクロファイルをダウンロードすることはセキュリティ上リスクがあるので、マクロ無しExcelファイルを公開しています

他に要望等ありましたら、可能な限り改修等を対応しますのでコメント頂ければと思います

 

<このツールが『結構使える!』と思ったら、下のグッドボタンを押していただけたら幸いです>

コメントはこちら

  1. より:

    お世話になっております。ダウンロードさせて頂きました。
    タイトルに自動で日付を入れる事は可能でしょうか。
    ご確認の程よろしくお願い致します。

    • RH より:

      管理人のRHです。
      nさんコメントありがとうございます。

      タイトルに自動で日付を入れることは可能です。

      以下をすれば出力したPDFファイルのタイトルに日付が入ると思います。

      ・106行目に「ActiveWorkbook.BuiltinDocumentProperties(“Title”).Value = Format(Now(), “yyyy/mm/dd”)」を追加
      ・116行目に「IncludeDocProperties:=True, _」を追加
      ・147行目に「IncludeDocProperties:=True, _」を追加

      お思いの動作と違う場合は、改めてコメント頂ければ幸いです。

  2. コノ より:

    こんにちは!コードをコピーさせていただきました。イチからマクロを汲むことができない自分にとっては本当に、本当にありがたいです。仕事でガンガン使用させていただきます。取り急ぎ御礼まで…!

    • RH より:

      管理人のRHです。
      コノさんツールの使用とコメントありがとうございます。

      はい、ガンガンお使いいただければと思います!

  3. いっぱんじむ より:

    いつもお世話になっています。
    コピーさせてもらって使わせていただいてます。

    「実行時エラー1004
    WorksheetクラスのSelectメソッドが失敗しました。」
    というエラーが出てしまい困っています。

    デバッグボタンを押したら、
    ‘複数PDFファイルに保存する場合の処理 のところの
    144行目?「Worksheets(sheetNm).Select」
    が黄色くなっていました。

    VBなど全く分からないのでどうしたらいいのか困っています。
    解決法がありましたらご教授いただければ幸いです。
    よろしくお願いします。

    • いっぱんじむ より:

      すみません、自己解決しました。
      給与ソフトから出したエクセルに、デフォルトで非表示のシートがあったことが原因でした。

      • RH より:

        管理人のRHです。
        いっぱんじむさんツールの使用とコメントありがとうございます。
        コメント頂いたおかげで非表示シートがある場合、正常に動作しないことが発覚しましたので対応いたします。

  4. 匿名 より:

    現在、請求書をエクセル(シート)で、50数社を管理して
    います。
    今後、この請求書のPDFをメール送信でおこなう予定です。

    「❸:複数のPDFファイルで保存」は、「Office 365」で
    ないと機能しませんか?

    よろしくお願いします。

    • RH より:

      管理人のRHです。
      匿名さんコメントありがとうございます。

      当該ツールはWindowsのOffice365で動作確認済みですが、他のバージョン(WindowsのOffice2016やOffice2019)でも動作するかと思います。

      もし匿名さんの環境で実行してみて思うような動作がしない場合は再度コメント頂ければと思います。

  5. kinopi より:

    こんにちは。
    様々なツール活用させていただいております!
    1点ご質問がございます。

    「複数のPDFファイルで保存」の<手順1>「先頭のファイル名称」を先頭ではなく、後方に名称を追加することはできますでしょうか?

    お忙しいところ恐れ入りますが、ご対応いただけますと幸いです。

    • RH より:

      管理人のRHです。
      kinopiさん、ツールの使用とコメントありがとうございます。

      返答が遅くなり、大変申し訳ありません。

      「先頭のファイル名称」を先頭ではなく、後方に名称を追加する場合は、ソースコードを以下のように変更すれば対応可能です。

      156行目を以下に変更する。
      (変更前) fileName = folderPath & “\” & opFileNm & “_” & sheetNm & “.pdf”
        ↓
      (変更後) fileName = folderPath & “\” & sheetNm & “_” & opFileNm & “.pdf”

      このように変更すれば、「先頭のファイル名称」に記載した値が「.pdf」の前(ファイル名の最後)に記載されて保存されます。

      例)先頭のファイル名称に「test」と入力して「複数のPDFファイルで保存」を実行する。
        →ファイル名が「シート名称_test.pdf」となります。

      もしkinopiさんの環境で実行してみて思うような動作がしない場合は再度コメント頂ければと思います。

      • kinopi より:

        返信ありがとうございます。
        こちらで出来ました!
        本当に助かります、ありがとうございました!

  6. mie より:

    管理人RHさん
    こんにちは。
    マクロの知識がまったく乏しい自分ですが、大変参考にさせていただいております。ありがとうございます。

    もしよろしければ、ひとつご相談させてください。

    電帳法対応まであと一歩のところなのですが、タイトルに金額を表示させることが必要です。
    各シートに表示されている請求金額をタイトルに入れることは可能でしょうか。

    • RH より:

      管理人のRHです。
      mieさん、コメントありがとうございます。

      >各シートに表示されている請求金額をタイトルに入れることは可能でしょうか。

      タイトルというのはファイル名だと思いますので、各シートの固定セル(例えば、A2セルとします)に請求金額があり、その値をファイル名の先頭に金額を追加してPDF出力するというイメージでご説明します。

      VBAソースコードを以下のように変更すれば対応可能です。

      ●154行目に以下のコードを追加:
      Dim kingakuSheetNm As String: kingakuSheetNm = CStr(Worksheets(sheetNm).Range(“A2”).Value) & “_” & sheetNm

      ●156行目を以下に変更:
      fileName = folderPath & “\” & opFileNm & “_” & kingakuSheetNm & “.pdf”

      ●158行目を以下に変更:
      fileName = folderPath & “\” & kingakuSheetNm & “.pdf”

      例)各シートのA2セルに請求金額(3000)が入力されている場合に、「複数のPDFファイルで保存」→「全シートを対象」を実行する。
        →ファイル名が「3000_シート名称.pdf」となります。
      ※金額のところにアンダースコア以外を入れる場合は、154行目にあるアンダースコアを変更してください。

      もしmieさんの環境で実行してみて思うような動作をしない場合は再度コメント頂ければと思います。

  7. ha より:

    こんにちは。
    マクロツールのわからない私にとって最高のサイト運営ありがとうございます。

    下記の相談があるのですが、対応することは可能でしょうか。

    「複数のPDFで保存する時に、指定シートを対象にしてPDF出力する」

    一つのPDFの場合は指定シートのみをPDFに出力できますが、
    複数のPDFで保存する場合に指定シートのみをPDFを出力する方法があると助かります。

    ご確認の程よろしくお願いいたします。

    • RH より:

      管理人のRHです。
      haさん、コメントありがとうございます。

      「複数のPDFで保存」でも指定したシートを選択できるように機能をアップデート、または可能な方法を追記しますので、もう少々お待ち下さい。

      • RH より:

        管理人のRHです。
        haさん、お待たせいたしました。

        「複数のPDFで保存」でも指定したシートを選択できるように機能をアップデートしましたので、よろしければ、以下よりご参照ください。

        https://resthill.blog/excel-vba-tool21/

        • ha より:

          管理人のRH様

          早速のご対応ありがとうございました。
          これで仕事が捗ります。
          ありがとうございました!

          • RH より:

            管理人のRHです。
            haさん、ご確認とコメントありがとうございます。

            業務効率化できるようになったようで良かったです。
            良かったら他の記事も参考にしていただければ幸いです。

  8. mie より:

    管理人RHさま

    先日、ご質問いたしましたmieです。
    とても早くにご回答いただき、ありがとうございます。

    ばっちりと解決できました。
    費用をかけてリネームするツールを導入しようかと検討しておりましたので、とても嬉しいです。
    サイトをブックマークして、他の記事も参考にさせていただきます。
    大変ありがとうございました!

    • RH より:

      管理人のRHです。
      mieさん、ご確認とコメントありがとうございます。

      問題なく動作したようで良かったです!
      良かったら他の記事も参考にしていただければ幸いです。

  9. Alpina より:

    管理人RH様

    本日こちらを見つけて問題を解決できました!
    本当にありがとうございます。これでかなり業務改善ができそうです。

    1点教えていただきたいのですが、PDFで保存する際に1ページ内に収まるように(現在は4ページ)保存したいと思います。いろいろ探してみたのですが、うまくいかずもし可能であれば教えてください。
    よろしくお願います。

    • RH より:

      管理人のRHです。
      Alpinaさん、ツールのご使用とコメントありがとうございます。
      返答が遅くなり、申し訳ありません。

      PDFで保存する際に1ページ内に収まるように保存する場合は以下の対応をしてみてください。

      ●127行目に以下のコードを追加:

        For Each sheetNm In sheetNmArray
       ’1ページに収まるように印刷設定を変更
       Worksheets(sheetNm).PageSetup.Zoom = False
       Worksheets(sheetNm).PageSetup.FitToPagesWide = 1
       Worksheets(sheetNm).PageSetup.FitToPagesTall = 1
        Next

      ●160行目に以下のコードを追加:

        ’1ページに収まるように印刷設定を変更
        Worksheets(sheetNm).PageSetup.Zoom = False
        Worksheets(sheetNm).PageSetup.FitToPagesWide = 1
        Worksheets(sheetNm).PageSetup.FitToPagesTall = 1

      ※どちらのコードも『Worksheets(sheetNmArray).Select』の直前に追加します。

      なお、これを行うと開いているExcelファイルの印刷設定が1ページ収まるように変更されますのでご了承ください。

      • Alpina より:

        RH様
        本当にありがとうございます。ネットサーフィンをしながらいろいろいじってみましたが、うまくいかなかったです。最終的にはアナログ(エクセル設定で1ページにする方法)的な方法でしか対応できなかったため非常に助かります。

  10. nobo_t より:

    管理人RH様

    本ページの機能が大変便利と思い拝見させていただきました。
    Excel2013で実行しますと機能しました。
    大変便利です。
    Excel2007で実行を試したのですが、menuに“PDFで保存”が出てきません。何か方法は、ございませんでしょうか?
    どうぞよろしくお願いいたします。

    • RH より:

      管理人のRHです。
      nobo_tさん、ツールのご使用とコメントありがとうございます。
      返答が遅くなり、申し訳ありません。

      Excel2007で上部のリボンエリア(menu部分)に『PDFで保存』が表示されていないとのことですが、
      インストールができていない、または何らかの理由でリボン内にタブが表示がされないことが原因かなと推測します。
      しかし、当方は申し訳ありませんが、Excel2007環境がないため現象を実現させることができませんのであくまで推測となってしまいます。

      試しにですが、以下の二つをご確認と実施願います。
      <1つ目>
       ①開いたExcelの「ファイル」→「オプション」を選択します。
       ②「アドイン」→管理の「設定」→『Divide_pdf_Export-1』にチェックが外れていたら、チェックを入れて「OK」を選択します。

      <二つ目>
       ①Excelに登録されているアドインをすべて削除する。
       ②Excel再起動する。
       ③アドインを改めて登録する。
       ※アドインを削除する場合は、一時的にExcelアドインファイルを別のパスに退避させて疑似的になくなったと見せかける方法で大丈夫です。

      この二つをお試しいただいて現象が解決されないようでしたら改めてコメントください。