ゴリラストロングの雑記帳

月収10万円の広告収入を目指す自称専業ライターのブログです。




【Excel VBA】PDFファイルを出力。データベースから会員カードを作成するマクロ。




どうも、ゴリラストロングです。

 

 

今回はデータベースから会員カードを作成し、PDFファイルを出力するマクロを作成してみました。

 

 

<元データ>

f:id:gorilla-strong:20200311045344p:plain

データベースはこちらになります。

 

f:id:gorilla-strong:20200311045500p:plain

テンプレートはこちらになります。

 

 

 

<動作概要>

①テンプレートを人数分コピーして新規シートを作成する。

②コピーしたテンプレートにデータベースのデータを入力する。

③PDFファイルとして出力する。

 

<マクロ実行後>

f:id:gorilla-strong:20200311050421p:plain

 人数分の会員カードが作成されています。

 

f:id:gorilla-strong:20200311050551p:plain

そして人数分のPDFファイルの作成も完了しています。

 

f:id:gorilla-strong:20200311050834p:plain

このような形でPDFファイルが人数分作成されました。

 

 

 

 スポンサーリンク

 

 

 

ソースコード> 

Sub 会員カード()

Dim data, temp As Object
Set data = Workbooks("会員カード.xlsm").Worksheets("データ")
Set temp = Workbooks("会員カード.xlsm").Worksheets("テンプレ")

Dim lastrow As Long
lastrow = data.Cells(Rows.Count, 1).End(xlUp).Row


Worksheets.Add After:=temp, Count:=lastrow - 1


For i = 3 To lastrow + 1

temp.Cells.Copy Worksheets(i).Range("A1")
Worksheets(i).Name = data.Range("A" & i - 1)

Worksheets(i).Range("C4") = data.Range("A" & i - 1)
Worksheets(i).Range("C6") = data.Range("B" & i - 1)
Worksheets(i).Range("F6") = data.Range("D" & i - 1)
Worksheets(i).Range("I6") = data.Range("E" & i - 1)
Worksheets(i).Range("I4") = data.Range("C" & i - 1)
Worksheets(i).Range("C10") = data.Range("F" & i - 1)


Dim sheetsname As String
sheetsname = data.Range("B" & i - 1)

Dim fileName As String
fileName = ThisWorkbook.Path & "¥" & sheetsname & ".pdf"
   
Worksheets(i).ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName




Next


End Sub

 

PDFの作成は難しそうだと思い今まで行ったことがなかったのですが、思っていたよりもかなり簡単でした。

 

 

<今回参照させていただいたサイト>

https://tonari-it.com/excel-vba-pdf/

 

 

以上、ゴリラストロングでした。

 

 スポンサーリンク