値を変更しながらの連続シート出力シート出力 2023.06.10
アクティブシートの指定したセルに、数字を順番に設定し、そのシートを別ブックとして連続で出力するマクロです。
あるセルに出席番号を入力したら、その生徒データを表示するシートを作成したが、番号を設定するごとに、そのシートのみを別のブックとして保存したい。そのような時に使用します。
[値を変更しながら連続印刷]はこちら
[値を変更しながら連続PDF出力]はこちら
[アクティブブックの全シートを一括出力]はこちら
【サンプルコード実行動画】 ※次の動画の氏名や点数はすべてダミーデータです
【お薦め】マクロ・プロシージャを管理する無料のツール!
Excelマクロ管理ツール
Excelマクロ管理ツール
サンプルコード2023.06.10
'----------------------------------------------------------------------------- ' 値を順に変えてのシートを出力 '----------------------------------------------------------------------------- ' アクティブシートの任意のセルに値を順に設定し、アクティブシートのみを ' 別ブックとして出力(保存)するマクロです ' アクティブシートが保護されているとエラーになるためシートの保護は解除してください ' また出力先に同名のファイルがある場合は上書きしますので気を付けてください '[作成日]2023.06.10 'https://excel.syogyoumujou.com/vba/output_sheet.html '----------------------------------------------------------------------------- Sub ContinuousOutputAsSheet() '定数 Const C_START As Long = 1 '開始番号 Const C_END As Long = 5 '終了番号 Const C_STEP As Long = 1 '間隔 Const C_ADDRESS As String = "A1" 'セル番地 Const C_FILENAME As String = "Sample" '出力ファイルの基準名 'アクティブシートを変数に設定 Dim Sh As Worksheet Set Sh = ActiveSheet 'フォルダの選択 MsgBox "出力先のフォルダを選択してください", vbInformation Dim strFolderPath As String With Application.FileDialog(msoFileDialogFolderPicker) If .Show Then strFolderPath = .SelectedItems(1) Else Exit Sub End If End With 'フォルダ参照に区切り文字追加 strFolderPath = strFolderPath & Application.PathSeparator '画面更新停止・メッセージ非表示設定 Application.ScreenUpdating = False Application.DisplayAlerts = False Dim i As Long Dim AWB As Workbook For i = C_START To C_END Step C_STEP 'アクティブシートの該当セルに値を設定 Sh.Range(C_ADDRESS).Value = i '新規ブックにシートをコピー Sh.Copy '新規ブックを変数に設定 Set AWB = ActiveWorkbook '数式を値に変換 AWB.Worksheets(1).UsedRange.Value = AWB.Worksheets(1).UsedRange.Value '基準名+番号をファイル名として新規ブックを保存 AWB.SaveAs strFolderPath & C_FILENAME & Format$(i, "000") & ".xlsx" '新規ブックを閉じる AWB.Close Next '画面更新設定・メッセージ表示設定 Application.DisplayAlerts = True Application.ScreenUpdating = True 'フォルダを開く Call Shell("C:\Windows\Explorer.exe " & strFolderPath, vbNormalFocus) End Sub
定数を変更することで、様々な状況に対応出来ます。
・「開始番号」 設定する値の開始番号です。
・「終了番号」 設定する値の終了番号です。
・「間隔」 通常は「1」ですが、一つ飛ばしにする場合は「2」にします。
・「セル番地」 値を変更するセルの番地です。
・「出力ファイル基準名」 出力するファイル名の基準です。ファイル名は「基準名+番号」です。
【書籍紹介】知りたいがすぐわかる! やりたいがすぐできる!
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」(Kindle版)
ユーザーフォームを扱えると、VBAでできることが大きく広がります!
本書では、知りたいこと、やりたいことから、逆引きで学びを深められます。
140以上のサンプルファイル付き!