-----------------------------------------------------------
今日おすすめのコンテンツ(過去のメルマガ配信)
-----------------------------------------------------------
それでこれ、
今どきですからペーパーレスの奨励ということで、
請求書等の帳票類を出す際にも、いちいち昔ながらの
「紙に印刷して、お客様へ郵送する・・・」
なんて、非効率な事はやらないで
「PDFファイルに落して、メール添付で送る・・・」
という会社も多くなって来ているかと思いますが、
上記で紹介している「自動印刷マクロ」の場合でも、
帳票の出力先いうのは何も印刷(プリンター出力)に
限った話ではないですから、
ほんの一個所、プログラムの一部分をちょっと書き換えて
みるだけで、そのようなPDFファイルに落とす等の場合でも、
これは便利に使えるマクロに、簡単に応用ができます。
そうです、
いつもの「マクロの記録」を賢く
使えるようになればよいだけです。
例えばですが、
上記のページで紹介している「印刷プレビュー」に変えた
部分の1行を、以下のExcel操作にて「マクロの記録」を
やって記録したコードをコピッペして上書きする、という
だけです。
────────────────────────────+
1.まずは、マクロの記録を開始します。
[開発]タブの[コード]で [マクロの記録] をクリック→
「マクロの記録」画面が出るのでそのまま[OK] をクリック。
2.ここで、PDFファイルに保存する為の操作をします。
「ファイル」→「名前を付けて保存」→ 適当な保存場所を選んで
「ファイルの種類(T):」欄でプルダウンから「PDF(*.pdf)」
を選択し、「ファイル名(N)」に 任意のファイル名 を入れて
「保存」ボタンを押す。
3.最後に、マクロの記録を終了します。
[開発]タブの[コード]で [■記録終了] をクリックする。
────────────────────────────+
そうすると、上記の操作にて
++++++++++++++++++++++─
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\santa\Documents\Book1.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
++++++++++++++++++++++─
このようなプログラムのコードが自動的に書けますので、
ここで気にするべきは、この2段目にある
"C:\Users\santa\Documents\Book1.pdf"
この、「保存先のフォルダとファイル名を示す部分」だけです。
その他は一切気にする必要はありません。
これは、先ほど「適当な保存場所」を選んで「任意のファイル名」
にてファイル保存をしましたから、上記の部分は全くの任意です
から、個々人で皆違ってきます。
その他の部分は(これは少々長くてややこしいプログラムに
なっていますから・・)気にする必要も、理解する必要性も、
全くありません!
決して、ネットで意味調べてみるなんて時間のムダだけは
しないでくださいね。(よっぽど暇で暇で仕方ないと言う人なら
よいですが、そもそも、そうした人はマクロ勉強して自動化する
必要がありませんから、時間の掛かる手作業で十分ですよね。笑)
それで、
皆さんが貴重な自分の勉強時間を費やすべきは、肝心な
"C:\Users\santa\Documents\Book1.pdf"
ここの部分のコードの「書き直し方」だけです。
例えば、「ファイル名」をその「シート名」と同じにして
PDFファイルに落としたいという場合であれば、
"C:\Users\santa\Documents\Book1.pdf"
↓
"C:\Users\santa\Documents\" & ActiveSheet.Name
(拡張子の.pdfの部分は省略可能です。)
と書き換えればよいだけです。
(但し、この様なコードの書き換えいうのは間違えやすい
ものですから、少々の慣れ(練習)は必要です。)
また、全てのシートをPDFに出す際に、「順番にシーケン
シャルな番号を振りたい」という場合であれば、
"C:\Users\santa\Documents\Book1.pdf"
↓
"C:\Users\santa\Documents\" & i
(単純に)だとすると、
この講座でも何度も勉強してきました「シート数でループを
回す方法」というのにこれを組み込んで、
++++++++++++++++++++++─
For i = 1 To Sheets.Count
Sheets(i).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ここ→ "C:\Users\santa\Documents\" & i, ・・・(以下省略)
Next i
++++++++++++++++++++++─
とすればよいわけです。
あと、PDFファイルで保存する際には色々なオプション関係も
選べますから(発行後にファイルをいちいち開かない、とか)
その場合でも、上記以外のその他の部分は一切気にする必要は
ありませんから、できたコードに只
++++++++++++++++++++++─
Sub Macro3()
' 発行後にファイルをいちいち開かない場合
'
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\santa\Documents\Book2.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
++++++++++++++++++++++─
とだけコメントを書いておけば、それでよいだけです。
(「最後の True が False に変わってる!」なんていう事すら
考える必要性は全くありませんね。ラク!)
ということで、
「自動印刷マクロ」での印刷先(落し先)の部分の1行を、
ファイル保存の操作をファイル形式にFDFを選んで保存する
という操作を「マクロの記録」で記録して、できたコード
でコピッペして上書きすればいいだけ・・・。
こうしていくと、「自動印刷」のマクロが例えば、
PDFファイル自動出力のマクロにも、
PDFファイルをシート名で自動出力するマクロにも、
PDFファイルを自動採番で自動出力するマクロにも、
はたまた、
CSVファイルを自動出力するマクロにも、
etc、
etc、
と、色々なっていくわけです。
このように、いつもやっている「マクロの記録」を使って極
簡単に、単純に、応用発展していけるようになるわけですね。
この辺は、もう皆さんよろしいでしょうか?
あとは、自分で色々工夫をして試して作ってみるのみです。
このようなパターンを数多く、よく勉強してみてください。
何度も言うようですが、
「マクロ作りの勉強をする」とは、すなわち「応用力」です。
色々試して、自分自身の「応用力を養う!」あるのみです!!
■難しい専門用語なしでマクロの作り方がマスターできる公式テキスト
マクロは手軽に作れて便利ですよね。