VBAでエクセルから特定シートをPDFにして名前を付けて指定のフォルダに保存することに成功

コロナのワクチン、65歳未満の人とかはいつ頃になるのだろうか。
その辺スケジュールが示されていない。
大阪市のHPを見ると、64歳以下の人のスケジュールはしばらくお待ちくださいとなっているが、早々に示すべきではないのかと思った。
あと大阪市は時短協力金の支給が進んでいないらしい。
都構想とか言っている割に全然イケてない大阪市。

売上高の管理と請求書の発行はエクセルで行っている。
これは以前も記したのだが、売上高の管理シートで、日付、相手先、内容等を記載して、マクロを実行すると、それが請求書シートに転記されるというのだ。
これまでその後の請求書シートをPDFで保存してというところを手作業で行っていた。

月末あたりになると、複数の請求書を作成してPDFで保存する作業がある。
相手先ごとで請求書へ転記、PDFへ保存という作業を繰り返していた。
10件あれば、PDFへの保存作業が10回生じて、まあまあめんどいなと思っていた。
なのでこの部分を自動化することにした。
仕組みとしては売上高の管理シートで請求書を発行する先の日付、内容等をまずは記入する。
で、発行したい先に1番から順に番号を付す。
マクロを実行すると1番から順に請求書がPDF化されて、自動で指定のフォルダに日付と相手先の名前でPDFとして保管されるというものだ。
10件あれば、10件分が順番に自動で作成される。

税理士業務などの場合、顧問報酬とか、業務受託の報酬とかで月一とか業務完了時とかに請求するので、管理シート自体はシンプルなので作りやすいと思う。
卸売業とか、介護サービスとか、月のうちで同じ相手先に対して数回売り上げが生じるような場合はもうちょっと複雑になると思う。

エクセルをPDF化する際に記述するのは以下のみで大丈夫だった。

Worksheets("請求書").ExportAsFixedFormat Type:=xlTypePDF, fileName:= _
"C:\Users\名前\Dropbox\Desktop\請求管理\請求書\" & Range("T" & ch) & Range("C" & ch) & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False

どこかから拾ってきたのをコピーして少し加工したのだが、ちょっと説明。
Worksheets("請求書").ExportAsFixedFormat Type:=xlTypePDF,
これは請求書のシートをPDFで出力するという命令みたいだ。

fileName:= _
"C:\Users\名前\Dropbox\Desktop\請求管理\請求書\" & Range("T" & ch) & Range("C" & ch) & ".pdf",

ここはPDFをどこに保管して、保管時のファイル名はどうするというのを指定している。
私の場合はドロップボックスの請求管理フォルダの更に請求書フォルダへ保存する指定をしている。
“&移行がファイル名で、ファイル名は売上管理シートの日付とクライアント名を取ってくるように指示している。

Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False

この部分は正直あまりよく分からないが、PDFの品質であったり、印刷範囲の指定とかだったりすると思う。
今回は請求書シートの1ページ目のみ印刷だが、2ページ目、3ページ目があればここで指示するのだと思う。
あとはPDF化後にPDFを確認するか否かなどの指示と思われる。

このPDF化の記述の前に、売上管理シートから請求書シートへ転記する記述を入れて、その後にPDF化の記述、で、それが指定した番号が終わるまで繰り返すようにしている。
地味にうれしいが、次使うのが来月末なので来月末が待ち遠しい。

6年前2015年の5月の阿蘇の写真。
ミルクロードというところ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です