PDF化マクロの作り方【コピペで使えるサンプルコード掲載】
こんな要望にお答えします。
この記事では、エクセルで作成した資料をPDF化するマクロの作り方を詳しくご紹介しています。
PDF化マクロを導入することで得られるメリットがこちら
- 複数のページを1つのPDFファイルとして出力できる
- 条件によってPDF化する印刷範囲を自動調整できる
- 転記マクロや写真を貼り付けるマクロと組み合わせて設定できる
PDF化マクロを導入することでエクセル業務の効率を格段にアップさせることが可能です。
PDF化してデータを保存することが多い!という方は是非参考にしてみてください。
目次
PDF化マクロとは
PDF化マクロとは、エクセルで作成した資料をPDF出力する処理を自動化するものです。
処理としてはこんな感じ
印刷範囲の調整 → PDFファイルの保存場所・名前を決定 → PDF出力実行
がPDF化マクロの主な処理内容です。
PDF化マクロに「テキストを転記するマクロ」や「写真を貼り付けるマクロ」を追加することでオリジナルの効率化マクロにすることができます。
PDF化マクロにはExportAsFixedFormatメソッドを利用します。
構文がこちら

疲れ果てた人
ExportAsFixedFormatメソッドを使ったことがない!という方は、
「object」「Type」「FileName」の3つの要素だけを設定して使ってみてください。
3つの要素をどのように設定すればいいのかを具体的に説明します。
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=folder_path & “PDFデータ"
と記入した場合、各要素は以下のよう意味になります。
object・・・対象となるブックやシートを指定
→ActiveSheet
操作中のシートを対象とする
Type・・・出力形式を設定
→xlTypePDF
拡張子がPDF形式のファイルを作成する
FileName・・・保存先とファイル名を入力
→ThisWorkbook.Path & “\"& “PDFデータ"
マクロを設定したブックと同じ場所に「PDFデータ」というファイル名で出力される
難しく感じるポイントは「FileName」をどう定義するのかないでしょうか。
ファイル名にマクロ実行時の日付、時間を含めることでファイル名の被りによるエラーの発生を防ぐことができるのでおすすめです。
記事の後半では、実際にExportAsFixedFormatメソッドを利用したコードを紹介していますので是非参考にしてみてください。
PDF化マクロの作り方
処理内容のイメージが湧きやすいように、実際のエクセル業務に導入したPDF化マクロをサンプルとして作り方をご紹介していきます。
実際の業務に導入したPDF化マクロ
実際の業務に導入したPDF化マクロには大きく分けて以下4つのマクロが設定されています。
- 別シートにテキストを転記するマクロ
- 指定する写真を貼り付けるマクロ
- 条件によって印刷範囲を調整するマクロ
- 複数のページを1つのPDFデータに出力するマクロ
PDF化マクロを実行したときの処理がこんな感じです。
今回のPDF化マクロは業務内容に合わせるため以下の項目を達成するようなコードにしています。
- 指定するセルをダブルクリックすることでPDF化マクロを実行する
- マクロが設定されたブックと同じ場所にPDFデータを保存する
- ファイル名は「写真番号+記入する番号(整数)」にする
- 出力ページが複数になった場合、1つのPDFファイルで出力する
4つ目の「複数ページを1つのPDFファイルで出力」するコードを実現できなくて困っている方が多いのではないでしょうか。。

拒否する人
この記事の後半では、導入したコードをそのまま掲載しているので是非参考にしてみてください。
PDF化マクロ導入手順
様式の設定
「設定シート」の様式がこちら
「写真表シート」の様式がこちら
マクロを設定していく前に様式の設定を行う必要があります。
業務内容によって様式を変更しても構わないのですが、コードも変更する必要があるので注意が必要です。
VBAの設定
1.コードを編集するVBA画面を開く
2.標準モジュールを作成
3.Module1にコードを記入
Module1に記入する1つ目のコードがこちら
Sub 写真貼付け()
'各変数を定義
Dim Ash As Worksheet
Set Ash = Sheets("設定")
Dim Bsh As Worksheet
Set Bsh = Sheets("写真表")
Const cnsTitle = "ファイル名一覧取得"
Const cnsDIR = "\*.*"
Dim xlAPP As Application
Dim strPath As String
Dim zukei As Shape
Dim syasin As String
Dim myShape As Shape
Dim myRange As Range, selectRange As Range
'「設定」シートの1列目最終行数を取得
gyoa = Ash.Cells(Rows.Count, 1).End(xlUp).Row
'「設定」シートの1行目目最終列数を取得
retua = Ash.Cells(1, Columns.Count).End(xlToLeft).Column
'「写真表」シートのF2セル~T110セル内にある図形を削除
Set myRange = Bsh.Range(Bsh.Cells(9, 2), Bsh.Cells(75, 34))
For Each myShape In Bsh.Shapes
If Not (Intersect(Bsh.Range(myShape.TopLeftCell, myShape.BottomRightCell), myRange) Is Nothing) Then
myShape.Delete
End If
Next
'「写真表」シートの基本情報を削除
Bsh.Range(Bsh.Cells(2, 30), Bsh.Cells(2, 33)).ClearContents
Bsh.Cells(5, 5).ClearContents
Bsh.Cells(7, 5).ClearContents
Bsh.Cells(7, 13).ClearContents
Bsh.Cells(5, 22).ClearContents
Bsh.Cells(7, 22).ClearContents
Bsh.Cells(7, 30).ClearContents
Bsh.Cells(43, 5).ClearContents
Bsh.Cells(45, 5).ClearContents
Bsh.Cells(43, 13).ClearContents
Bsh.Cells(43, 22).ClearContents
Bsh.Cells(45, 22).ClearContents
Bsh.Cells(45, 30).ClearContents
'「写真表」シートに日付けを入力
Bsh.Cells(2, 30) = Date
'「設定表」シートの写真番号を全て検索
For i = 3 To gyoa
'「設定表」シートの写真番号と「写真表」の写真番号が一致した場合処理を行う
If Bsh.Cells(2, 24) = Ash.Cells(i, 1) Then
Set xlAPP = Application
'「設定表」シート142行目の写真データが保存されているフォルダの場所を変数として格納
strPath = Ash.Cells(i, 6)
'フォルダの存在確認 --- 必要な場合のみ記述 ---
If Dir(strPath, vbDirectory) = "" Then
MsgBox "指定のフォルダは存在しません。", vbExclamation, cnsTitle
Exit Sub
End If
'「設定表」シート7列目に写真データ情報が記入されていれば写真を貼り付ける
If Ash.Cells(i, 7) <> "" Then
Bsh.Cells(5, 5) = Ash.Cells(i, 2)
Bsh.Cells(7, 5) = Ash.Cells(i, 3)
Bsh.Cells(7, 13) = Ash.Cells(i, 4)
syasin = Ash.Cells(i, 6) & "\" & Ash.Cells(i, 7) & ".JPG"
Set zukei = Bsh.Shapes.AddPicture(Filename:=syasin, LinkToFile:=False, SaveWithDocument:=True, Left:=0, Top:=0, Width:=0, Height:=0)
With zukei
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
.LockAspectRatio = msoTrue
'''''''''''''''''''''ここの数値を変更することで写真の大きさ、配置を変更できる''''''''''
.Height = Bsh.Range(Bsh.Cells(10, 4), Bsh.Cells(22, 15)).Height
rx = (Bsh.Range(Bsh.Cells(10, 4), Bsh.Cells(22, 15)).Width - .Width) / 2
.Left = Bsh.Range(Bsh.Cells(10, 4), Bsh.Cells(22, 15)).Left + rx
.Top = Bsh.Range(Bsh.Cells(10, 4), Bsh.Cells(22, 15)).Top
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End With
Else
End If
'「設定表」シート8列目に写真データ情報が記入されていれば写真を貼り付ける
If Ash.Cells(i, 8) <> "" Then
syasin = Ash.Cells(i, 6) & "\" & Ash.Cells(i, 8) & ".JPG"
Set zukei = Bsh.Shapes.AddPicture(Filename:=syasin, LinkToFile:=False, SaveWithDocument:=True, Left:=0, Top:=0, Width:=0, Height:=0)
With zukei
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
.LockAspectRatio = msoTrue
'''''''''''''''''''''ここの数値を変更することで写真の大きさ、配置を変更できる'''''''''''''
.Height = Bsh.Range(Bsh.Cells(24, 4), Bsh.Cells(36, 15)).Height
rx = (Bsh.Range(Bsh.Cells(24, 4), Bsh.Cells(36, 15)).Width - .Width) / 2
.Left = Bsh.Range(Bsh.Cells(24, 4), Bsh.Cells(36, 15)).Left + rx
.Top = Bsh.Range(Bsh.Cells(24, 4), Bsh.Cells(36, 15)).Top
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End With
Else
End If
'「設定表」シート9列目に写真データ情報が記入されていれば写真を貼り付ける
If Ash.Cells(i, 9) <> "" Then
Bsh.Cells(5, 22) = Ash.Cells(i, 2)
Bsh.Cells(7, 22) = Ash.Cells(i, 3)
Bsh.Cells(7, 30) = Ash.Cells(i, 4)
syasin = Ash.Cells(i, 6) & "\" & Ash.Cells(i, 9) & ".JPG"
Set zukei = Bsh.Shapes.AddPicture(Filename:=syasin, LinkToFile:=False, SaveWithDocument:=True, Left:=0, Top:=0, Width:=0, Height:=0)
With zukei
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
.LockAspectRatio = msoTrue
'''''''''''''''''''''ここの数値を変更することで写真の大きさ、配置を変更できる'''''''''''''''''''
.Height = Bsh.Range(Bsh.Cells(10, 21), Bsh.Cells(22, 32)).Height
rx = (Bsh.Range(Bsh.Cells(10, 21), Bsh.Cells(22, 32)).Width - .Width) / 2
.Left = Bsh.Range(Bsh.Cells(10, 21), Bsh.Cells(22, 32)).Left + rx
.Top = Bsh.Range(Bsh.Cells(10, 21), Bsh.Cells(22, 32)).Top
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End With
Else
End If
'「設定表」シート10列目に写真データ情報が記入されていれば写真を貼り付ける
If Ash.Cells(i, 10) <> "" Then
syasin = Ash.Cells(i, 6) & "\" & Ash.Cells(i, 10) & ".JPG"
Set zukei = Bsh.Shapes.AddPicture(Filename:=syasin, LinkToFile:=False, SaveWithDocument:=True, Left:=0, Top:=0, Width:=0, Height:=0)
With zukei
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
.LockAspectRatio = msoTrue
'''''''''''''''''''''ここの数値を変更することで写真の大きさ、配置を変更できる'''''''
.Height = Bsh.Range(Bsh.Cells(24, 21), Bsh.Cells(36, 32)).Height
rx = (Bsh.Range(Bsh.Cells(24, 21), Bsh.Cells(36, 32)).Width - .Width) / 2
.Left = Bsh.Range(Bsh.Cells(24, 21), Bsh.Cells(36, 32)).Left + rx
.Top = Bsh.Range(Bsh.Cells(24, 21), Bsh.Cells(36, 32)).Top
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End With
Else
End If
'「設定表」シート11列目に写真データ情報が記入されていれば写真を貼り付ける
If Ash.Cells(i, 11) <> "" Then
Bsh.Cells(43, 5) = Ash.Cells(i, 2)
Bsh.Cells(45, 5) = Ash.Cells(i, 3)
Bsh.Cells(45, 13) = Ash.Cells(i, 4)
syasin = Ash.Cells(i, 6) & "\" & Ash.Cells(i, 11) & ".JPG"
Set zukei = Bsh.Shapes.AddPicture(Filename:=syasin, LinkToFile:=False, SaveWithDocument:=True, Left:=0, Top:=0, Width:=0, Height:=0)
With zukei
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
.LockAspectRatio = msoTrue
'''''''''''''''''''''ここの数値を変更することで写真の大きさ、配置を変更できる'''''''
.Height = Bsh.Range(Bsh.Cells(48, 4), Bsh.Cells(60, 15)).Height
rx = (Bsh.Range(Bsh.Cells(48, 4), Bsh.Cells(60, 15)).Width - .Width) / 2
.Left = Bsh.Range(Bsh.Cells(48, 4), Bsh.Cells(60, 15)).Left + rx
.Top = Bsh.Range(Bsh.Cells(48, 4), Bsh.Cells(60, 15)).Top
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End With
Else
End If
'「設定表」シート12列目に写真データ情報が記入されていれば写真を貼り付ける
If Ash.Cells(i, 12) <> "" Then
syasin = Ash.Cells(i, 6) & "\" & Ash.Cells(i, 12) & ".JPG"
Set zukei = Bsh.Shapes.AddPicture(Filename:=syasin, LinkToFile:=False, SaveWithDocument:=True, Left:=0, Top:=0, Width:=0, Height:=0)
With zukei
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
.LockAspectRatio = msoTrue
'''''''''''''''''''''ここの数値を変更することで写真の大きさ、配置を変更できる''''''''''
.Height = Bsh.Range(Bsh.Cells(62, 4), Bsh.Cells(74, 15)).Height
rx = (Bsh.Range(Bsh.Cells(62, 4), Bsh.Cells(74, 15)).Width - .Width) / 2
.Left = Bsh.Range(Bsh.Cells(62, 4), Bsh.Cells(74, 15)).Left + rx
.Top = Bsh.Range(Bsh.Cells(62, 4), Bsh.Cells(74, 15)).Top
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End With
Else
End If
'「設定表」シート13列目に写真データ情報が記入されていれば写真を貼り付ける
If Ash.Cells(i, 13) <> "" Then
Bsh.Cells(43, 22) = Ash.Cells(i, 2)
Bsh.Cells(45, 22) = Ash.Cells(i, 3)
Bsh.Cells(45, 30) = Ash.Cells(i, 4)
syasin = Ash.Cells(i, 6) & "\" & Ash.Cells(i, 13) & ".JPG"
Set zukei = Bsh.Shapes.AddPicture(Filename:=syasin, LinkToFile:=False, SaveWithDocument:=True, Left:=0, Top:=0, Width:=0, Height:=0)
With zukei
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
.LockAspectRatio = msoTrue
'''''''ここの数値を変更することで写真の大きさ、配置を変更できる''''''''''''''''''''''''''
.Height = Bsh.Range(Bsh.Cells(48, 21), Bsh.Cells(60, 32)).Height
rx = (Bsh.Range(Bsh.Cells(48, 21), Bsh.Cells(60, 32)).Width - .Width) / 2
.Left = Bsh.Range(Bsh.Cells(48, 21), Bsh.Cells(60, 32)).Left + rx
.Top = Bsh.Range(Bsh.Cells(48, 21), Bsh.Cells(60, 32)).Top
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End With
Else
End If
'「設定表」シート14列目に写真データ情報が記入されていれば写真を貼り付ける
If Ash.Cells(i, 14) <> "" Then
syasin = Ash.Cells(i, 6) & "\" & Ash.Cells(i, 14) & ".JPG"
Set zukei = Bsh.Shapes.AddPicture(Filename:=syasin, LinkToFile:=False, SaveWithDocument:=True, Left:=0, Top:=0, Width:=0, Height:=0)
With zukei
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
.LockAspectRatio = msoTrue
''''''''''''ここの数値を変更することで写真の大きさ、配置を変更できる''''''''
.Height = Bsh.Range(Bsh.Cells(62, 21), Bsh.Cells(74, 32)).Height
rx = (Bsh.Range(Bsh.Cells(62, 21), Bsh.Cells(74, 32)).Width - .Width) / 2
.Left = Bsh.Range(Bsh.Cells(62, 21), Bsh.Cells(74, 32)).Left + rx
.Top = Bsh.Range(Bsh.Cells(62, 21), Bsh.Cells(74, 32)).Top
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End With
Else
End If
Else
End If
Next
End Sub
上記のコードは「設定シート」の情報から写真データを貼り付ける!という内容です。
Module1に記入する2つ目のコードがこちら
Sub PDF保存()
Dim Ash As Worksheet
Set Ash = Sheets("設定")
Dim Bsh As Worksheet
Set Bsh = Sheets("写真表")
Dim folder_path As String
folder_path = ThisWorkbook.Path & "\"
Dim Num1 As Long
Dim sheet_container() As Variant
'写真番号を変数に格納
Num1 = Bsh.Cells(8, 38)
sheet_counts1 = Worksheets.Count
' フォルダの存在確認 --- 必要な場合のみ記述 ---
If Dir(folder_path, vbDirectory) = "" Then
MsgBox "指定のフォルダは存在しません。", vbExclamation, cnsTitle
Exit Sub
End If
'X6セルに記入された数字を変数に格納
i = Num1 + 2
'「設定」シートの11列目が空白の場合、A4ヨコ1枚分の印刷範囲を設定
If Ash.Cells(i, 11) = "" Then
Bsh.Cells(2, 24) = Num1
'「写真表」シートを右端にコピペする
Sheets(2).Copy after:=Sheets(Worksheets.Count)
'コピペしたシートで印刷範囲を設定する
Sheets(Sheets.Count).PageSetup.PrintArea = Bsh.Range(Bsh.Cells(1, 1), Bsh.Cells(38, 34)).Address
sheet_counts2 = Sheets.Count
'コピペしたシートをアクティブにする
Sheets(sheet_counts2).Select
'PDF出力
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=folder_path & "写真番号" & Bsh.Cells(2, 24) & ".pdf", Quality:=xlQualityStandard, OpenAfterPublish:=False
Application.DisplayAlerts = False
'コピペしたシート削除する
Sheets(sheet_counts2).Delete
Application.DisplayAlerts = True
Else
'「設定表」シートの145行目に写真データ情報がある場合、A4ヨコ2枚分の印刷範囲を設定
'「写真表」シートを右端にコピペする(2シート分作成し1ページ目と2ページ目の印刷範囲を分ける)
Bsh.Cells(2, 24) = Num1
Worksheets(2).Copy after:=Sheets(Worksheets.Count)
Worksheets(Worksheets.Count).PageSetup.PrintArea = Bsh.Range(Bsh.Cells(1, 1), Bsh.Cells(38, 34)).Address
Worksheets(2).Copy after:=Sheets(Worksheets.Count)
Worksheets(Worksheets.Count).PageSetup.PrintArea = Bsh.Range(Bsh.Cells(39, 1), Bsh.Cells(76, 34)).Address
sheet_counts2 = Sheets.Count
'配列を使ってコピペした全てのシートをアクティブにする
ReDim sheet_container(sheet_counts1 + 1 To sheet_counts2)
For i = sheet_counts1 + 1 To sheet_counts2
sheet_container(i) = Sheets(i).Name
Next i
Sheets(sheet_container).Select
'PDF出力
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=folder_path & "写真番号" & Bsh.Cells(2, 24) & ".pdf", Quality:=xlQualityStandard, OpenAfterPublish:=False
Application.DisplayAlerts = False
'コピペしたシート削除する
Worksheets(sheet_container).Delete
Application.DisplayAlerts = True
End If
End Sub
上記のコードは1つの「設定番号」の情報からPDFデータを出力する!という内容です。
Module1に記入する3つ目のコードがこちら
Sub PDF保存2()
Dim Ash As Worksheet
Set Ash = Sheets("設定")
Dim Bsh As Worksheet
Set Bsh = Sheets("写真表")
Dim folder_path As String
folder_path = ThisWorkbook.Path & "\"
Dim Num1, Num2 As Long
Dim sheet_counts2 As Long
Dim sheet_container() As Variant
'X3セル、Z3セルに記入された数字を変数に格納
Num1 = Bsh.Cells(4, 38)
Num2 = Bsh.Cells(4, 41)
sheet_counts1 = Worksheets.Count
' フォルダの存在確認 --- 必要な場合のみ記述 ---
If Dir(folder_path, vbDirectory) = "" Then
MsgBox "指定のフォルダは存在しません。", vbExclamation, cnsTitle
Exit Sub
End If
'X3セルの数字からZ3セルの数字までを繰り返し処理する
For i = Num1 + 2 To Num2 + 2
'「設定表」シートの145行目が空白の場合、A4ヨコ1枚分の印刷範囲を設定
If Ash.Cells(i, 11) = "" Then
'「写真表」シートのD6セルにX3セルからZ3セルまでの数字を繰り返し記入
Bsh.Cells(2, 24) = i - 2
Sheets(2).Copy after:=Sheets(Worksheets.Count)
Sheets(Sheets.Count).PageSetup.PrintArea = Bsh.Range(Bsh.Cells(1, 1), Bsh.Cells(38, 34)).Address
Else
'「設定表」シートの145行目に写真データ情報がある場合、A4ヨコ2枚分の印刷範囲を設定
'「写真表」シートを右端にコピペする(2シート分作成し1ページ目と2ページ目の印刷範囲を分ける)
Bsh.Cells(2, 24) = i - 2
Worksheets(2).Copy after:=Sheets(Worksheets.Count)
Worksheets(Worksheets.Count).PageSetup.PrintArea = Bsh.Range(Bsh.Cells(1, 1), Bsh.Cells(38, 34)).Address
Worksheets(2).Copy after:=Sheets(Worksheets.Count)
Worksheets(Worksheets.Count).PageSetup.PrintArea = Bsh.Range(Bsh.Cells(39, 1), Bsh.Cells(76, 34)).Address
End If
Next
'配列を使ってコピペした全てのシートをアクティブにする
sheet_counts2 = Sheets.Count
ReDim sheet_container(sheet_counts1 + 1 To sheet_counts2)
For i = sheet_counts1 + 1 To sheet_counts2
sheet_container(i) = Sheets(i).Name
Next i
Sheets(sheet_container).Select
'PDF出力
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=folder_path & "写真番号" & Num1 & "~ 写真番号" & Num2 & ".pdf", Quality:=xlQualityStandard, OpenAfterPublish:=False
Application.DisplayAlerts = False
'コピペしたシート削除する
Worksheets(sheet_container).Delete
Application.DisplayAlerts = True
End Sub
上記のコードは複数の「設定番号」の情報からPDFデータを出力する!という内容です。
4.「写真表シート」にコードを記入
「写真表シート」に記入する1つ目のコードがこちら
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If (Target.Row = 4) And (Target.Column = 45) Then
Call PDF保存2
Else
End If
If (Target.Row = 8) And (Target.Column = 45) Then
Call PDF保存
Else
End If
End Sub
上記のコードは、
4行目、45列目のセルをダブルクリックすると「PDF保存2」マクロが実行される
8行目、45列目のセルをダブルクリックすると「PDF保存」マクロが実行される
という内容です。
「写真表シート」に記入する2つ目のコードがこちら
Private Sub Worksheet_Change(ByVal Target As Range)
'B6セルからAH8セルまで変化がなければ終了
If Intersect(Target, Range(Cells(2, 24), Cells(2, 24))) Is Nothing Then
Exit Sub
Else
'B6セルからAH8セルまで変化があれば温度転記マクロとリスト転記マクロを実行する
Call 写真貼付け
End If
End Sub
上記のコードは、
2行目、24列目のセルを変化させると「写真貼付け」マクロが実行される
という内容です。
PDF出力マクロとは直接関係ありませんがめちゃくちゃ仕事で使える内容になっているので是非チェックしてみてください。
これでPDF化マクロの導入が完了です。
手順通り作業を進めればお使いのエクセルファイルでPDF化マクロを扱えるようになります。
エクセル業務の効率をアップさせたい!と考えている方は是非挑戦してみてください。
業務内容に合わせてPDF化マクロをアレンジするには
上記で紹介しているPDF化マクロを業務内容に合わせてアレンジするには2つの方法があります。
- 様式とコードを業務内容に合わせて自分で編集する
- マメBlogにマクロ開発を依頼をする
それぞれの方法を詳しくご紹介していきます。
様式とコードを業務内容に合わせて自分で編集する
様式とコードを業務内容に合わせて自分で編集するにはVBAの知識が必要になります。
例えば、
- 「設定シート」のA1セルを「写真表シート」のA1セルではなくB3セルに転記するようにコードを修正する
- 写真をA3セルではなくC3セルに貼り付けるようコードを修正する
- 印刷範囲をA1セルからG10セルではなく、B3セルからK10セルになるようにコードを修正する
上記のようなコード修正ができる知識が必要!ということです。
掲載しているコードには細かく解説文を記入しているので、コードを編集する際参考にしてみてください。
様式やコードを編集せずにそのままPDF化マクロを使いたい!
という方は以下のサイトを参考にしてみてください。PDF化マクロをダウンロードしてすぐにお使い頂くことができます。
> > > PDF化マクロのダウンロードはこちら
マメBlogにマクロ開発を依頼する
マメBlogではマクロ開発サービスを受注しています。
- PDF化マクロを業務内容に合わせてアレンジしてほしい
- 今使っている様式にPDF化マクロを設定してほしい
- PDF化マクロに罫線を編集するマクロや色を操作するマクロを追加してほしい
こんな感じでまずはお気軽にご相談ください。
こんなエクセル業務をしていてこんな処理を自動化したい!をマクロで実現します。
> > > マメBlogのマクロ開発サービスはこちら
PDF化マクロはこんな人におすすめ
PDF化マクロは次のような人におすすめです。
- エクセルの資料をPDFデータに変換することが多い
- 複数のページを1つのPDFデータで出力したい
- 条件によって出力する印刷範囲を変更したい
勤めていた職場では、
上司に報告する資料はPDFに出力して印刷、ファイル名に日付を付けてデータを保存する
というルールがありました。
上司に報告したときのデータを残すことができる!というメリットがある反面、報告する都度PDF化するのがめんどくさいというデメリットもありました。

疲れ果てた人
こんなデメリットを解消するために開発したのがPDF化マクロです。
「編集」「ファイル名の入力」「保存」を一瞬で処理することができるようになったのでPDF化のストレスが激減。
毎日PDF出力作業があるので自動化したい!複数ページを1つのPDFデータに集約できなくて困っている!という方は是非PDF化マクロの導入にチャレンジしてみてください。
ディスカッション
コメント一覧
まだ、コメントがありません