スポンサーリンク

050-VBA

EXCELのVBAを使ってPDFを開き指定のページのみを印刷する!

へっぽこヘタレシステム管理者の管理人です。

さて、昨日に引き続き・・・

ある部署からエクセルのマクロの作成を依頼され・・・

その過程で、いくつか部品を作ったので忘備録として掲載します。

スポンサーリンク

ブログランキングにご協力ください!
ブログランキング・にほんブログ村へ

EXCELのマクロを使ってPDFを開き指定のページを開く

まずは、コードです。

例では、マクロ1に割り当てています。

Sub Macro1()
'
' Macro1 Macro
'

'A列の最終行を取得

    Dim LastRow As Long         '最終行
    
    LastRow = Cells(1, 1).End(xlDown).Row 'A列の最終行を取得

'印刷繰り返し回数を指定

     Dim xClip
     Set xClip = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
     Dim P As String
     Dim i As Long
         
     For i = 2 To LastRow
    
     P = P & ActiveSheet.Cells(i, 1).Value
     If i <> LastRow Then P = P & ","
    
     Next

'pdf開く処理

     CreateObject("shell.application").shellExecute "PDFファイルをフルパスで指定"
        
    With Application
    
     .Wait Now + TimeValue("00:00:03")
     .SendKeys "^p", True	'CTRL+Pを押す
     .Wait Now + TimeValue("00:00:03")
     .SendKeys "%g", True	'ALT+Gを押す
     .Wait Now + TimeValue("00:00:03")
     .SendKeys "{TAB}"		'TABを押す
     .Wait Now + TimeValue("00:00:03")
    
     xClip.SetText P	'印刷ページをセット
    
     .Wait Now + TimeValue("00:00:03")
    
     xClip.PutInClipboard	'印刷ページをクリップボートにコピー
    
     .Wait Now + TimeValue("00:00:03")
     .SendKeys "^v", True	'CTRL+Vを押す
    
     .Wait Now + TimeValue("00:00:03")
     .SendKeys "~", True	'エンターを押す
    
     End With
    
End Sub

コードの処理は次のとおりです。

A列の2行目から印刷したいページを入力します。

A列の1行目は【ページ数】等とタイトルを付けておけば良いでしょう。

次に、A列の最終行を取得します。

次に、印刷するページ数をA列から取得します。

例えば、A列に次の様に入力されているとすると

  • A2:4
  • A3:8
  • A4:9
  • A5:15
  • A6:20

4,8,9,15,20

を【P】として取得します。

次に、PDFをフルパス指定で開きます。

PDFを開いたら

【CTRL+P】を送信

【ALT+G】を送信

【CTRL+V】で【P】にセットした印刷するページを貼り付け

最後に【ENTER】を送信

以上です。

【TimeValue(“00:00:03”)】は待ち時間の設定です。

とくに大きいサイズのPDFを開く場合は、印刷できるようになるまでに時間が掛かるので、最初の【CTRL+P】を送信するまでの時間を長めに設定するとよいでしょう・・・

ブログ開設に必要なドメイン取得、サーバーレンタル、ASPの登録等は、こちらのサイトから!

スポンサーリンク
スポンサーリンク

-050-VBA

執筆者:


comment

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

CAPTCHA


関連記事

RPA・WinActorの練習!暫く使わないとすぐに忘れる!基本操作の習得はエクセルからセクセルの転記から!

物覚えの悪い地方の底辺公務員の管理人です。 今年から、事務の効率化の一環として、RPA・WinActorを使うことになりましたが・・・ 管理人の相場観としては・・・ 手書きの申請書AI-OCRでエクエ …

EXCELのVBAを使って任意のファイルのフルパスを取得する!

へっぽこヘタレシステム管理者の管理人です。 さて、ある部署からエクセルのマクロの作成を依頼され・・・ その過程で、いくつか部品を作ったので忘備録として掲載します。 スポンサーリンク ブログランキングに …

code1-eyecatch

AI-OCR【Tegaki+Seisho】&RPA【WinActor】!稼働させるマシンスペックは重要なのか?

国民1人10万円給付【特別定額給付金】の支給事務で、連日連夜のサビ残続きの管理人です。 既に、7割弱の申請書が届いていますが・・・ 入力作業がなかなか捗りません・・・ パンチャー6人・RPA2台体制で …

Accessでユーザー定義関数を作る!基本はエクセルの場合と同じ方法でOK!

エクセル【EXCEL】でユーザー定義関数は、よく使いますが・・・ そういえば、アクセス【ACCESS】では、使った事がないなと思い・・・ 作り方を整理してみました。 基本はEXCELの場合と同じ 試し …

WinActorとマクロマンの画像マッチングでのクリック精度を比較してみた!やはり無料RPAでは難しいのか?

へっぽこヘタレシステム管理者の管理人です。 さて、前回に続き、無料RPA【マクロマン】を使ってみます。 完全無料RPA【マクロマン】についてこちらの記事を 今回は、画像マッチングでボタンを認識してクリ …

スポンサーリンク
スポンサーリンク
スポンサーリンク