CONCAT関数と検索ボックスを利用してPDFを一括印刷するVBAとマクロ

右クリックメニューから一度に印刷できる

この機能も目から鱗が落ちる思いでした。通常、PDFでもエクセルファイルでも印刷する時というのは、一度ファイルを開くかと思います。

 

その後PDFであれば、メニューバーのファイルを選択、表示されたドロップダウンメニューから「印刷」を選択して「印刷ダイアログボックス」を表示させます。それから「印刷」ボタンを押すことで印刷をすることができます。

 

もしくはショートカットキーの「Ctrl+P」で印刷ダイアログボックスを表示させてから印刷ボタンを押して印刷することができるかと思いますが、どちらにしてもいくつか手順を踏まなければいけません。

 

以上のように一回表示させなくても印刷できるようにしたのが右クリックメニューからの印刷です。

 

例えば、フォルダの右上の検索ボックスで印刷したいファイル名を入力してファイルを表示させたとします。その表示されたファイルを選択して右クリックで表示されるメニューに「印刷」があるので、そこをクリックするだけで印刷できるというものです。

 

この機能を使えば、印刷したいファイルを毎回開かなくてもよくなります。さらにポイントが1つあります。

 

それは印刷できるファイルは1つだけではなく、最大15個まで選択して一括して印刷できるというものです。

 

人によっては16個以上のファイルを一度に印刷したい場合もあるでしょう。けれどもそのような場合はwindowsのレジストリファイルを少しいじらなければならないようです。

 

windowsのレジストリはOSの機能を満たすために重要なデータが入っているので、この部分に詳しい人以外はあまりいじらない方がいいかと思われます。

今回の記事のVBAのコードとシート上でしておくべきこと

以上のアイデアをVBAのコードに落とし込んだものが以下になります。

Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)

Sub 検索印刷()

Dim time As Long
time = 500

Sheets("検索印刷").Range("E2").Copy

CreateObject("Shell.Application").Open "C:\○○\○○\○○\○○"

’○の所には印刷したいファイルが入っているフォルダのパスを入れる

Sleep time

SendKeys "^{f}"

SendKeys "^{v}"

End Sub

 

次にエクセルのシートを以下のような形にします。

  • シート名を「検索印刷」へ修正
  • 「ファイル名をコピペ」の下に印刷したいファイルの名前をコピペ。
  • それ以外のセルに表示されている文字列は、ふきだしの中にある数式を入力。

 

以上の処理からマクロを実行すると、次のような処理が実行されます。

  • 印刷したいファイルが入っているフォルダが表示

     ↓

  • フォルダの右上の検索ボックスに印刷したいファイル名をつなげたものが入力される

     ↓

  • フォルダ上に指定のファイルが表示される

 

自分の理想としては、フォルダに表示されたファイルを全て自動で印刷できるようにしたかったのですが、この部分で止めておきました。理由はいくつかあります。

 

1つ目は、「人によってファイルによって印刷したいページが違う」からです。例えば印刷したいファイルが10個あったとします。人によっては全部「2ページ目だけ印刷したい」ということもあるでしょう。

 

フォルダに表示されたファイルを全て選択して右クリックメニューから印刷を実行すると全てのファイルで全てのページが印刷されてしまいます。中には100ページくらいのPDFファイルもあるかもしれません。

 

本当は一枚だけでいいのにマクロで全て印刷できるようにしてしまうと100ページあるファイルも全て印刷されてしまいます。ということで、印刷までの処理はマクロの中には入っていません。

 

2つ目は、「ファイル自体をコピーしたい」という需要です。印刷ではなくて指定のファイルを別のフォルダにコピーだけできれば良いという人もいるかもしれません。自分が実際に業務上でそのような指示があったのでこの部分を思いつきました。

 

今回の記事で書いた方法を使えば、1つ1つ特定のファイルをフォルダの検索ボックスにコピペ、フォルダに表示されたファイルをコピーして別フォルダにコピペ、という面倒くさい処理をしなくてもよくなります。

 

なぜなら一回で探したいファイルを一度にフォルダ上に表示できるので、一回でコピペできるからです。そういった需要も考えて、今回のマクロでは印刷までの処理はあえて入れないようにしました。

今回のマクロの注意点と効果

今回のつくったマクロで実際の業務でも結構楽になったように感じられます。逆にこういったマクロがつくれたことで、今まで一回一回コピペしてた自分は何だったんだろうか・・・と思ってしまいました。

 

ここで今回つくったマクロについての注意点をいくつか書いておきます。簡単に説明すると万能ではなく「数に制限がある」ということです。

 

今回の記事の途中でも書きましたが、右クリックメニューから印刷できる数は一度に「15個まで」です。16個以上を一度に印刷しようとしても右クリックメニューに「印刷」はwindowsの仕様で表示されなくなってしまいます。

 

もう一つは、「検索ボックスに入れられる文字数には制限がある」ということです。Microsoftの以下のページには検索ボックスには最大259文字しか入らないとあり、必然的に検索できるファイルの数も制限されてきます。

 

しかし数値の場合だと、この倍ぐらいは検索できたので今回のマクロを使う場合はそういった点も考慮されるといいかと思います。

あわせて読みたい

こんな記事も読まれています

コメント