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

値を変更しながらの連続PDF出力PDF出力   2023.01.26 [更新日]2024.03.30

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

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

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



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

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


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

サンプルコード2023.01.26 [更新日]2024.03.30

コードの貼り付け場所

'----------------------------------------------------
' 値を順に変えアクティブシートをPDF出力するマクロ
'----------------------------------------------------
' コード内の定数に開始番号や終了番号を設定します
'
' 作成日:2023.01.26 更新日:2024.03.30
' https://excel.syogyoumujou.com/vba/output_pdf.html
'----------------------------------------------------
Sub continuousOutputAsPDF()

    '-------------------------------
    ' 定数
    '-------------------------------
    ' 予め定めておく値を設定
    Const L_FILENAME            As String = "Sample" ' 出力ファイルの基準名
    Const L_TARGET_CELL_ADDRESS As String = "A1"     ' 値設定対象のセル
    Const L_STARTING_NUMBER     As Long = 1          ' 開始番号
    Const L_ENDING_NUMBER       As Long = 40         ' 終了番号
    Const L_STEP                As Long = 1          ' 番号の増分値
                                                     '   1の場合:番号は1ずつ増加する
                                                     '   2の場合:番号は2ずつ増加する
    '-------------------------------
    ' PDF出力先フォルダの選択
    '-------------------------------
    MsgBox "出力先のフォルダを選択してください", vbInformation
    Dim strFolderPath As String
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show Then
            strFolderPath = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    
    '-------------------------------
    ' 出力ファイルの基準パス作成
    '-------------------------------
    Dim strFileName As String
    strFileName = strFolderPath & Application.PathSeparator & L_FILENAME

    '-------------------------------
    ' PDF出力
    '-------------------------------
    Application.ScreenUpdating = False
    Dim i As Long
    For i = L_STARTING_NUMBER To L_ENDING_NUMBER Step L_STEP
    
        ' 値設定対象セルに値を設定
        ActiveSheet.Range(L_TARGET_CELL_ADDRESS).Value = i
        
        ' アクティブシートをPDFとして出力
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                        Filename:=strFileName & Format$(i, "000"), _
                                        OpenAfterPublish:=False
    Next
    Application.ScreenUpdating = True

    '-------------------------------
    ' 出力先フォルダを開く
    '-------------------------------
    Call Shell("C:\Windows\Explorer.exe " & strFolderPath, vbNormalFocus)
End Sub

定数を変更することで、様々な状況に対応出来ます。
・「出力ファイルの基準名」 出力するファイル名の基準です。PDF出力されるファイルの名前は「基準名」+「連続番号」になります。
・「値設定対象のセル」 値を設定するセルのアドレスです。セルアドレスは文字列として指定します。【例】セルB3:"B3"
・「開始番号」 セルに設定する値の開始番号です。1~40番まで設定する場合の1番を指します。
・「終了番号」 セルに設定する値の終了番号です。1~40番まで設定する場合の40番を指します。
・「番号の増分値」 番号の増分値です。「1」の場合1ずつ番号が増えます。「2」にすると2ずつ番号が増えます。


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



ページトップへ戻る

Excel 汎用コード

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