トップ > 汎用コード > 値を変更しながらの連続PDF出力

値を変更しながらの連続PDF出力PDF出力   2023.01.26

アクティブシートの指定したセルに、数字を順番に自動設定し、印刷範囲を連続でPDF出力するマクロです。

あるセルに出席番号を入力したら、その生徒データを表示するシートを作成したが、40人の出席番号を順に入力して、その都度PDFで出力するのは面倒。そのような時に使用します。

[値を変更しながら連続印刷]はこちら
[値を変更しながら連続シート出力]はこちら



※マクロ実行前に印刷範囲を設定しておいてください

【サンプルコード実行動画】※次の動画の氏名や点数はすべてダミーデータです


【お薦め】マクロ・プロシージャを管理する無料のツール!
 Excelマクロ管理ツール

サンプルコード2023.01.26

コードの貼り付け場所

'+++ 値を順に変えてのPDF出力 +++
'https://excel.syogyoumujou.com/vba/output_pdf.html
Sub ContinuousOutputAsPDF()

    '定数
    Const START_NUM  As Long = 1          '開始番号
    Const END_NUM    As Long = 40         '終了番号
    Const C_STEP     As Long = 1          '間隔
    Const C_ADDRESS  As String = "A1"     'セル番地
    Const C_FILENAME As String = "Sample" '出力ファイルの基準名
    
    'フォルダの選択
    MsgBox "出力先のフォルダを選択してください", vbInformation
    Dim strFolderPath As String
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show Then
            strFolderPath = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    
    'アクティブシートをPDFとして出力
    Dim strFileName As String
    strFileName = strFolderPath & "\" & C_FILENAME
    Application.ScreenUpdating = False
    With ActiveSheet
        Dim i As Long
        For i = START_NUM To END_NUM Step C_STEP
            .Range(C_ADDRESS).Value = i
            .ExportAsFixedFormat _
                Type:=xlTypePDF, _
                Filename:=strFileName & Format$(i, "000"), _
                OpenAfterPublish:=False
        Next
    End With
    Application.ScreenUpdating = True
    
    'フォルダを開く
    Call Shell("C:\Windows\Explorer.exe " & strFolderPath, vbNormalFocus)
End Sub

定数を変更することで、様々な状況に対応出来ます。
・「開始番号」 設定する値の開始番号です。
・「終了番号」 設定する値の終了番号です。
・「間隔」 通常は「1」ですが、一つ飛ばしにする場合は「2」にします。
・「セル番地」 値を変更するセルの番地です。
・「出力ファイル基準名」 出力するファイル名の基準です。ファイル名は「基準名+番号」です。


【書籍紹介】知りたいがすぐわかる! やりたいがすぐできる!
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」(Kindle版)
ユーザーフォームを扱えると、VBAでできることが大きく広がります!
本書では、知りたいこと、やりたいことから、逆引きで学びを深められます。
140以上のサンプルファイル付き!



ページトップへ戻る

Excel 汎用コード

Copyright(C) 2009- 坂江 保 All Rights Reserved.