VBSでExcel、Word、PowerPointを一括でPDFに変換してみる

2017年12月7日VBScript, 開発

おはようございます。

ExcelやWordを使って資料を作った後、
大体はPDFに変換して誰かに送付したり、社内でレビューをしたりしますよね。
ビジネスシーンでは最早当たり前のようにやられていることかと思います。

まあ、あまりないシーンかもしれませんが、
沢山のドキュメントを一括で変換したいって時に使えるバッチ(VBScript)を作りました。

スポンサーリンク

そもそも何故PDFに変換するのか

送受信者でレイアウトに相違が起きにくい

Excel、Wordであれば、バージョンや各自の設定によって見え方が異なってしまう可能性がありますが、PDFはどんな環境でも同じレイアウトで閲覧することができます。

Officeが入っていなくても閲覧可能

今の時代、あんまりないのかもしれませんが、Excel、Wordの場合はそれぞれのソフトウェアがインストールされていないと閲覧ができません。

サイズが圧縮される

一般的に、PDFに変換するとサイズが圧縮されるため、メールなんかで送受信する際には双方にメリットがあります。

加工できない

重要な書類などは、誰かに加工されてしまうと困る場合があります。
ExcelやWordなんかにもパスワードでロックする機能がありますが、PDFであれば特に何もする必要なく、基本的には加工できません。(特別なソフトなんかでは出来る場合がありますが)

VBScript

2018年10月10日 追記

次の方法でPDF化できるようにしました。

  1. ブック全体
  2. アクティブシートのみ(最後に保存した際に、アクティブだったシート)
  3. ページ指定(From ~ To)

また、出力後に元ファイルを削除するかどうかのフラグを持たせ、元ファイルの削除に対応しました。
※バックアップなど、自己責任でお願いします。

2019年03月22日 追記

ひしもち様のご指摘で、Office 2013以前の場合に保存ダイアログが表示されてしまうケースに対応しました。
(ドキュメントを閉じる前後で、App.DisplayAlertsの値を操作)

2019年09月06日 追記

びば様の要望で、PowerPointに対応しました。

2019年10月09日 追記

全体的に修正。
変換したPDFを別のフォルダに出力するかどうかを「copyFlg」で制御するようにしました。

追加部分

変数の宣言を追加

出力処理

元ファイル削除

 

全体

下記の内容をテキストファイルにコピペして、「convertPdf.vbs」という名前で保存します。

 

実行してみる

フォルダ内容
フォルダ内容

Excelフォルダ―にはExcelファイルを2種類、同じ階層にはWordファイルを2種類配置しました。

この状態で、ConverPdf.vbsを実行。

完了メッセージ
完了メッセージ

変換が完了するとメッセージが表示されます。

変換後のフォルダ内容
変換後のフォルダ内容

VBScript内で指定した出力先にPDFが出力されます。

PDFファイル
PDFファイル

PDFを表示してみると、ちゃんと内容が表示されることが確認できました。

まとめ

例えば、タスクスケジューラなんかに仕込んで
決まったフォルダにドキュメントを入れておけば自動で変換してくれるなんてこともできそうですね。

ではでは。

スポンサーリンク


関連するコンテンツ

2017年12月7日VBScript, 開発Batch, vbs, VBScript, バッチ, プログラミング

Posted by doradora