値を変更しながらの連続PDF出力PDF出力 2023.01.26 [更新日]2024.03.30
アクティブシートの指定したセルに、数字を順番に自動設定し、印刷範囲を連続でPDF出力するマクロです。
あるセルに出席番号を入力したら、その生徒データを表示するシートを作成したが、40人の出席番号を順に入力して、その都度PDFで出力するのは面倒。そのような時に使用します。
[値を変更しながら連続印刷]はこちら
[値を変更しながら連続シート出力]はこちら
※マクロ実行前に印刷範囲を設定しておいてください
【サンプルコード実行動画】※次の動画の氏名や点数はすべてダミーデータです
【お薦め】マクロ・プロシージャを管理する無料のツール!
Excelマクロ管理ツール
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以上のサンプルファイル付き!