Created
March 9, 2024 13:55
-
-
Save YujiFukami/b68c6f6dc6d8f648bb32d23b5f90adcf to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Public Sub OutputPDFs(ByRef SheetNameList As Variant, _ | |
| ByRef FolderPath As String, _ | |
| ByRef FileName As String, _ | |
| Optional ByRef Book As Workbook, _ | |
| Optional ByRef Message As Boolean = True) | |
| '複数シートをまとめてPDF出力する | |
| '20231116 | |
| '参考 | |
| 'https://www.softex-celware.com/post/outputpdfs | |
| '引数 | |
| 'SheetNameList・・・PDF化するシートのシート名が入った一次元配列 | |
| 'FolderPath ・・・出力先フォルダ | |
| 'FileName ・・・出力PDFのファイル名 | |
| '[Message] ・・・出力確認のメッセージを表示するかどうか | |
| '[Book] ・・・対象のワークブック(省略ならActiveWorkbook) | |
| '引数チェック | |
| If Book Is Nothing Then | |
| 'ワークブックが指定されていない場合はActiveWorkbook | |
| Set Book = ActiveWorkbook | |
| End If | |
| '出力するPDFのファイル名を作成する | |
| Dim PDFPath As String | |
| PDFPath = FolderPath & "\" & FileName & ".pdf" | |
| '最初に選択していたシートを保管しておく | |
| Dim SelectSheet As Worksheet: Set SelectSheet = ActiveSheet | |
| 'PDF化対象シートを選択 | |
| Book.Worksheets(SheetNameList).Select | |
| 'PDFで出力する | |
| Dim Sheet As Worksheet: Set Sheet = ActiveSheet | |
| On Error GoTo ErrorEscape1 | |
| Sheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=PDFPath | |
| GoTo ErrorEscape2 | |
| ErrorEscape1: | |
| '同じPDFが起動中の場合はエラーになる | |
| MsgBox "PDF出力に失敗しました" & vbLf & _ | |
| "同じ名前のPDFが起動中の可能性があります", _ | |
| vbExclamation | |
| ErrorEscape2: | |
| 'PDFの出力先のフォルダを起動するか確認 | |
| Dim MessageStr As String | |
| If Message = True Then | |
| MessageStr = "「" & FileName & ".pdf" & "」" & vbLf & _ | |
| "を作成しました" & vbLf & _ | |
| "出力先フォルダを起動しますか?" | |
| If MsgBox(MessageStr, vbYesNo + vbInformation) = vbYes Then | |
| Shell "C:\Windows\explorer.exe " & _ | |
| FolderPath, vbNormalFocus | |
| End If | |
| End If | |
| '最初に選択していたシートを表示する(元に戻す) | |
| SelectSheet.Select | |
| End Sub |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment