VBA

【VBAでOutlook操作2】

Excel VBA

業務でExcelを使用している方の大半はExcelで集計したり整経したシートをメールに添付して送信するという作業を一日に何度も行っていると思います。

その集計して添付送信する作業を、何回かの記事に分けて完全に自動化していきたいと思います。

今回は2回目という事で、Excelファイルの特定のシートをPDFへ保存しメールへ添付するところまでをやりたいと思います。

前回の記事 → 【VBAでOutlookを操作】

前回までで出来ているコード

よくわからなくなった方は、前回の記事を確認してみてください。

VBAでPDF保存

VBAから特定のシートをPDF保存することは難しくないです。
色々なサイトで紹介されていますが、一つ注意しなければならない事があります。
他の記事ではあまり、解説されていません。

PDFを保存するフォルダが、VBAから見えているか?

フォルダ階層の位置が同じであるか?

なにを言いたいかというと、皆さんが今作っているOutlook自動操作プログラムを、特定のパソコンでしか使用しないことは無いと思います。

パソコンのフォルダ階層は、個人で使用するパソコン毎に異なっている部分が多いと思います。

それぞれのパソコンに合わせて、保存フォルダを書き直しても良いですが台数が多いと超大変!!です。

なので、次の様に保存場所を指定します。

PDFファイルの保存

コードを見てお判りでしょうか?
WScrit.Shellというオブジェクトを生成し、SpecialFolders(“Desktop”)でそれぞれExcelファイルを使用するパソコンのデスクトップのパスを取得させています。

とても便利で、使い勝手の良いオブジェクトなので、WScrit.Shellの使用方法は是非、マスターしてください。

PDF保存

とても簡単ですね!!
特に注意するところはありません。
変数Pathへは先ほど取得したデスクトップのパスが入っています。
セパレータは取得できないので、セパレータ(\)とファイル名+ .pdf
をファイル名として渡してやればよいです。

ここまでで完成したソースコード

皆さん、お疲れ様でした。
ここまでのソースコードをまとめて記載します。

ここまでで、実装は完成です。
とっても簡単ですよね!
後は、ボタンに上のマクロを登録すれば、ボタンクリックで実行できます。

今回はデスクトップへ保存しましたが、ネットワークサーバー等へ保存したい時も多いと思いますので、次回そういった処理に関して注意する点や処理方法などを書いていきます。

VBAで本当にお勧めできる書籍が出版されました。

ぜひ読んでみてください