【Windows】WORDやEXCELをドラッグ&ドロップで一括PDF書き出しできるツール

プログラム

とっちゃん@nyanco! です。

今回は、WindowsでMicrosoft(マイクロソフト)のWORDやEXCELのファイルをドラッグ&ドロップで一括PDF書き出しできるツールのご紹介です。

スポンサーリンク

たくさんのExcelやWordファイルを一括でPDFにしたい!

仕事で大量のワードやエクセルのファイルをPDFにする業務が発生しまして。

1ファイルずつ開いてPDFに書き出して…なんてとてもじゃないけどやってられん!!ということで何か一括で書き出しできる方法はないか検索したところ…ありました!!

Excel→PDF変換ツール
・作成者:まさまさ
・動作環境:Windows 7以上、Excel2010以上

こちらインストール不要のフリーソフトで、ダウンロードしたフォルダの中にある「ExcelPDFVer1.0」というアイコンにエクセルファイルをドラッグ&ドロップするだけで自動でPDFを作成してくれるという超便利ツールです。

しかも複数ファイルでも一括でまとめてPDFにしてくれます!

PDFはエクセルファイルと同じフォルダに書き出される仕様です。

ただ、対応しているのがExcelデータだけなんですよね…

ワードバージョンもないかなぁと「WordPDFVer1.0」などで検索してみるも見つからず…

自分でカスタマイズしてみた

ちなみにこちらのフリーソフト、拡張子が「.jse」となってて、一般的なソフトウェアの拡張子である「.exe」とは異なる形式です。

「.jse」とはなんぞや?と調べてみると、「JavaScriptをベースにしたMicrosoft独自のスクリプト」とのこと。

Javascriptがベースなら、中身が編集できるなら自分でカスタムできるのでは?と思い早速チャレンジしてみることに。

ファイルを右クリックして、出てきたメニューの「編集(E)」をクリックしてみると、メモ帳アプリであっけなく開きました。

「.jse」ファイルはどのファイルもメモ帳で開けるというわけではなく、スクリプトが暗号化されていて専用ソフトでないと開けない「.jse」ファイルの方が一般的なようです。

開いてみるとJavascriptっぽいのでなんとなく読めそう。

カスタムするため、スクリプト内容を色々調べている過程で、なんと同じようなスクリプトを紹介しているサイトを発見。

スクリプト内容は「Excel→PDF変換ツール」の中身とほぼほぼ同じ内容でした。

結構出回っているスクリプトなんでしょうか??

まぁとにかく試行錯誤を繰り返してなんとか望むものができたので公開しておきます!

「Excel、Word一括PDF変換ツール」のスクリプトとダウンロード

エクセル、ワードが混在した状態でドラッグ&ドロップしてもまとめてPDFに書き出しされるようにカスタムしたものです。

早速ですが、スクリプトコードはこちら!

// ドラッグ&ドロップされたファイルを確認
if (WScript.Arguments.Count()==0){
WScript.echo("ファイルがありません");
WScript.Quit();
}

// Word または Excelを起動する
var word = WScript.CreateObject("Word.Application");
var excel = WScript.CreateObject("Excel.Application");

//word.Visible = true; // 処理中のWordを表示させるには冒頭のコメントアウト削除
//excel.Visible = true; // 処理中のExcelを表示させるには冒頭のコメントアウト削除

// ドラッグ&ドロップされたファイルを1つずつ処理する
for (var i = 0; i < WScript.Arguments.Count(); i++){
converToPDF(WScript.Arguments.Item(i));
}

excel.Quit();
word.Quit();

WScript.echo("終わりました"); //「終わりました」メッセージ不要ならコメントアウト


///////////////////////////////////////////////////////////

// ファイルをPDFに変換する関数 
function converToPDF(fname){
var fname_pdf = fname + ".pdf";

if (fname.match(/\.xls\w*$/)) { // Excelを変換
var book = excel.Workbooks.Open(fname);
book.ExportAsFixedFormat(0/*xlTypePDF*/,fname_pdf);
book.Close();
}
else if (fname.match(/\.doc\w*$/)) { // Wordを変換
var doc = word.Documents.Open(fname);
doc.SaveAs(fname_pdf, 17/*wdFormatPDF*/);
doc.Close();
}
}

カスタムしたポイント

Wordファイルも認識するようにした。
・元のスクリプトは、書き出し処理する時に1ファイルずつ開く仕様でしたが、個人的に開かなくていいかなと思ったので開かないように仕様変更しました。
※ちなみに11・12行目のコメントアウト(冒頭の「//」)を削除すると開くようになります。

上記コードを丸々コピーしてメモ帳にペースト後、任意のファイル名+拡張子「.jse」で保存してください。

そんなの面倒くさい!良く分からない!という方は、下記から完成品の「.jse」ファイルをダウンロードしてお使いください。

「Excel-Word_PDF.jse」をダウンロードする

使用するにあたっての注意点

注意点がいくつか。

自動書き出しされる設定は、各ファイルの設定に依存します。

Wordで言うと、「変更履歴」の表示設定どおりに出力されたります。
Excelで言うと、基本ブック全体が書き出されるので、データ用や材料用のシートなど、PDFにしたくないシートも出力されます。

対策としては、ExcelをコピーしてPDFにしたくないシートを削除してから処理するか、書き出したPDFからCube PDFなどのツールで不要なページを削除するかなどが考えられます。

また、原則書き出されたPDFはしっかり確認しておくようにしてください。
本スクリプトは自己責任でご利用いただき、何か損害が生じたとしても作成者は一切責任は負いません。

改めて参考にさせていただいたサイト様

※コードを公開するのが不適切な場合は、コメント欄にてお知らせください。すぐにコードを削除いたします。

おわりに

いや~ドラッグ&ドロップで一括で書き出しできちゃうのはめちゃくちゃ便利ですね!

やはりスクリプトは作業効率化には欠かせません。

本記事がどなたかの参考になれば幸いです。

今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧

 

コメント