AcroPDFLib.AxAcroPDF: Excel VBAサンプル(B)

TOP > AcroPDFLib.AxAcroPDF > Excel VBAサンプル(B)


AcroPDFLib.AxAcroPDFオブジェクトの一部を使ったExcel VBAサンプルです。

Acrobat Readerと同じ動作をします。

当ページ最下部の注意も参照してください。

 

Excelファイルのダウンロード

AxAcroPDF006.zip

 

動作確認環境

  • WindowsXP Pro + SP3 + WindowsUpdate + Acrobat Pro 8.2.3
    ※Acrobat Readerのみの環境では動作しません。

 

サンプル実行画面

サンプル(B)画像
「画面のサイズ変更」フォーム

Excel VBA ソースコード

<frmPDFBrauzar フォーム>

001 Option Explicit 002 003 Private Sub UserForm_Initialize() 004 '画面初期サイズを変更する 005 Me.Width = 750 006 Me.Height = 550 007 AcroPDF1.Width = Me.Width - 10 008 AcroPDF1.Height = Me.Height - AcroPDF1.Top - 40 009 010 'Tipsをセットする 011 cmdOpenPDFFile.ControlTipText = _ 012 "ローカルなPDFファイルを選択&表示する" 013 cmdReadPDF.ControlTipText = _ 014 "URL.PDFなどのPDFファイルを表示する" 015 chbDisplayToolBar.ControlTipText = _ 016 "ToolBarを表示する" 017 018 cmdPrintWithDialog.ControlTipText = _ 019 "PrintWithDialogメソッドを実行" 020 cmdPrintAll.ControlTipText = _ 021 "PrintAllメソッドを実行" 022 cmdPrintPages.ControlTipText = _ 023 "PrintPagesメソッドを実行" 024 txtFromPage.ControlTipText = _ 025 "印刷開始ページをセット" 026 txtToPage.ControlTipText = _ 027 "印刷終了ページをセット" 028 029 cmdGoBackwardStack.ControlTipText = _ 030 "GoBackwardStackメソッドの実行" 031 cmdGoFirstPage.ControlTipText = _ 032 "GoFirstPageメソッドの実行" 033 cmdGoPreviousPage.ControlTipText = _ 034 "GoPreviousPageメソッドの実行" 035 txtPageNumber.ControlTipText = _ 036 "PageNumberメソッドの実行" 037 cmdGoNextPage.ControlTipText = _ 038 "GoNextPageメソッドの実行" 039 cmdGoLastPage.ControlTipText = _ 040 "GoLastPageメソッドの実行" 041 cmdGoForwardStack.ControlTipText = _ 042 "GoForwardStackメソッドの実行" 043 044 cmbsetPageMode.ControlTipText = _ 045 "setPageModeメソッドを実行" 046 cmbsetLayoutMode.ControlTipText = _ 047 "setLayoutModeメソッドを実行" 048 cmdsetZoom.ControlTipText = _ 049 "setZoomメソッドを実行" 050 cmbsetPageMode2.ControlTipText = _ 051 "setPageModeメソッドを実行" 052 cmbsetLayoutMode2.ControlTipText = _ 053 "setLayoutModeメソッドを実行" 054 txtsetZoom2.ControlTipText = _ 055 "ズーム%をセット" 056 cmdsetZoom2.ControlTipText = _ 057 "setZoomメソッドを実行" 058 059 AcroPDF1.ControlTipText = _ 060 "PDFファイルをココに表示する" 061 cmdEnd.ControlTipText = "画面を閉じる" 062 063 'コントロールの初期値を設定する 064 AcroPDF1.setShowToolbar False 065 With cmbsetPageMode2 066 .Clear 067 .AddItem "None" 068 .AddItem "Bookmarks" 069 .AddItem "Thumbs" 070 End With 071 With cmbsetLayoutMode2 072 .Clear 073 .AddItem "Don't Care" 074 .AddItem "Single Page" 075 .AddItem "One Column" 076 .AddItem "Two Column Left" 077 .AddItem "Two Column Right" 078 End With 079 txtsetZoom2.Text = 60 'ズ-ム 100% 080 'PDFコントロール上のツールバーを設定(非表示)にする 081 chbDisplayToolBar.Value = False 082 End Sub 083 084 Private Sub cmdChangeSize_Click() 085 '「画面のサイズ変更」フォームを表示する 086 Load frmChangeSize 087 frmChangeSize.Show 088 End Sub 089 090 Private Sub cmdOpenPDFFile_Click() 091 Dim vntFileName As Variant 092 'ファイルを開くダイアログを開きます 093 vntFileName = _ 094 Application.GetOpenFilename( _ 095 FileFilter:="PDFファイル(*.PDF),*.PDF", _ 096 FilterIndex:=1, _ 097 Title:="PDFファイルを開く", _ 098 MultiSelect:=False) 099 '選択されたファイルを開きます 100 If vntFileName <> False Then 101 txtURL.Text = vntFileName 102 Call cmdReadPDF_Click 103 End If 104 End Sub 105 106 Private Sub cmdReadPDF_Click() 107 On Error GoTo Err_cmdReadPDF_Click 108 '入力チェック 109 If Trim(txtURL.Text) = "" Then Exit Sub 110 'PDFを表示する 111 AcroPDF1.src = txtURL.Text 112 'PDFコントロール上のツールバーを設定(非表示)にする 113 AcroPDF1.setShowToolbar chbDisplayToolBar.Value 114 Exit Sub 115 Err_cmdReadPDF_Click: 116 MsgBox Err.Number & " : " & vbCrLf & Err.Description, _ 117 vbOKOnly + vbCritical, _ 118 "実行エラー : cmdReadPDF_Click" 119 End Sub 120 121 Private Sub chbDisplayToolBar_Click() 122 'PDFコントロール上のツールバーを設定(表示/非表示)にする 123 AcroPDF1.setShowToolbar chbDisplayToolBar.Value 124 End Sub 125 126 Private Sub cmdGoBackwardStack_Click() 127 '2つ目のビュースタックがあれば2つ前のページ表示をし、 128 'なければ1つ目の表示したページを移動表示します。 129 AcroPDF1.goBackwardStack 130 End Sub 131 132 Private Sub cmdGoFirstPage_Click() 133 '最初のページに移動表示する。 134 AcroPDF1.gotoFirstPage 135 End Sub 136 137 Private Sub cmdGoPreviousPage_Click() 138 '1ページ前に移動表示する。 139 AcroPDF1.gotoPreviousPage 140 End Sub 141 142 Private Sub txtPageNumber_Change() 143 On Error GoTo Err_txtPageNumber_Change 144 If Trim$(txtPageNumber.Text) = "" Then Exit Sub 145 If Not IsNumeric(txtPageNumber.Text) Then 146 MsgBox "数字のみ入力です", vbOKOnly + _ 147 vbExclamation, "入力エラー" 148 subSetFocusSelect txtPageNumber 149 Exit Sub 150 End If 151 AcroPDF1.setCurrentPage txtPageNumber.Text 152 Exit Sub 153 Err_txtPageNumber_Change: 154 MsgBox Err.Number & " : " & vbCrLf & Err.Description, _ 155 vbOKOnly + vbCritical, _ 156 "実行エラー : txtPageNumber_Change" 157 End Sub 158 159 Private Sub cmdGoNextPage_Click() 160 '次ページへ移動表示する。 161 AcroPDF1.gotoNextPage 162 End Sub 163 164 Private Sub cmdGoLastPage_Click() 165 '最終ページに移動表示する。 166 AcroPDF1.gotoLastPage 167 End Sub 168 169 Private Sub cmdGoForwardStack_Click() 170 'GoBackwardStackメソッドを実行して移動表示した 171 'ページの1つ前に移動表示したページを表示します。 172 'GoBackwardStackメソッドを実行した時のみ動作します。 173 AcroPDF1.goForwardStack 174 End Sub 175 176 Private Sub cmdPrintWithDialog_Click() 177 '印刷ダイアログを表示します。ページの選択状態があれば、 178 '範囲印刷設定が印刷ダイアログに設定されます。 179 '注)PDFドキュメントのセキュリティ設定で印刷不可の場合は 180 ' 当メソッドは無視されます。 181 AcroPDF1.printWithDialog 182 End Sub 183 184 Private Sub cmdPrintAll_Click() 185 '印刷ダイアログボックスを表示しないで、 186 'PDFドキュメント全体を印刷します。 187 AcroPDF1.printAll 188 End Sub 189 190 Private Sub cmdPrintPages_Click() 191 On Error GoTo Err_cmdPrintPages_Click 192 '入力チェック 193 If Not IsNumeric(txtFromPage.Text) Then 194 MsgBox "数字のみ入力です", vbOKOnly + _ 195 vbExclamation, "入力エラー" 196 subSetFocusSelect txtFromPage 197 Exit Sub 198 End If 199 If Not IsNumeric(txtToPage.Text) Then 200 MsgBox "数字のみ入力です", vbOKOnly + _ 201 vbExclamation, "入力エラー" 202 subSetFocusSelect txtToPage 203 Exit Sub 204 End If 205 If Not (txtFromPage.Text <= txtToPage.Text) Then 206 MsgBox "印刷範囲の入力ミスです", vbOKOnly + _ 207 vbExclamation, "入力エラー" 208 subSetFocusSelect txtFromPage 209 Exit Sub 210 End If 211 '範囲指定で印刷をする。開始ページは0からです。 212 AcroPDF1.PrintPages _ 213 (txtFromPage.Text + 1), (txtToPage.Text + 1) 214 Exit Sub 215 Err_cmdPrintPages_Click: 216 MsgBox Err.Number & " : " & vbCrLf & Err.Description, _ 217 vbOKOnly + vbCritical, _ 218 "実行エラー : cmdPrintPages_Click" 219 End Sub 220 221 Private Sub cmbsetPageMode2_Change() 222 'PDFドキュメントのページ表示モードを設定。 223 '※小文字化してセットする 224 AcroPDF1.SetPageMode _ 225 StrConv(cmbsetPageMode2.Value, vbLowerCase) 226 End Sub 227 228 Private Sub cmbsetLayoutMode2_Change() 229 Dim strlayout As String 230 Select Case cmbsetLayoutMode2 231 Case "Single Page" 232 strlayout = "singlepage" 233 Case "One Column" 234 strlayout = "onecolumn" 235 Case "Two Column Left" 236 strlayout = "twocolumnleft" 237 Case "Two Column Right" 238 strlayout = "twocolumnright" 239 Case Else 240 strlayout = "dontcare" 241 End Select 242 'PDFドキュメント表示のページ・ビューに 243 'レイアウトモードを設定変更する 244 AcroPDF1.setLayoutMode strlayout 245 End Sub 246 247 Private Sub cmdsetZoom2_Click() 248 '入力チェック 249 If Not IsNumeric(txtsetZoom2.Text) Then 250 MsgBox "数字のみ入力です", vbOKOnly + _ 251 vbExclamation, "入力エラー" 252 subSetFocusSelect txtsetZoom2 253 Exit Sub 254 End If 255 'PDFドキュメントの表示倍率を設定 256 AcroPDF1.setZoom (txtsetZoom2.Text) 257 End Sub 258 259 Private Sub cmdEnd_Click() 260 '画面を閉じる 261 Unload Me 262 End Sub 263 264 Private Sub subSetFocusSelect(obj As Control) 265 '入力ミスしたコントロールにフォーカスを 266 '移動して、文字列を選択状態にする。 267 With obj 268 .SetFocus 269 .SelStart = 0 270 .SelLength = Len(obj.Text) 271 End With 272 End Sub 273


 Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
 

<frmChangeSize フォーム>

001 Option Explicit 002 003 Const CON_CHAGE_SIZE = 10 004 005 Private Sub cmdCS_End_Click() 006 '画面を閉じる 007 Unload Me 008 End Sub 009 010 Private Sub cmdCS_Tope_Click() 011 frmPDFBrauzar.Height = _ 012 frmPDFBrauzar.Height - CON_CHAGE_SIZE 013 014 '画面のフォームサイズを整える 015 Call sub_FormChangeSize 016 End Sub 017 018 Private Sub cmdCS_Bottom_Click() 019 frmPDFBrauzar.Height = _ 020 frmPDFBrauzar.Height + CON_CHAGE_SIZE 021 022 '画面のフォームサイズを整える 023 Call sub_FormChangeSize 024 End Sub 025 026 Private Sub cmdCS_Left_Click() 027 frmPDFBrauzar.Width = _ 028 frmPDFBrauzar.Width - CON_CHAGE_SIZE 029 030 '画面のフォームサイズを整える 031 Call sub_FormChangeSize 032 End Sub 033 034 Private Sub cmdCS_Right_Click() 035 frmPDFBrauzar.Width = _ 036 frmPDFBrauzar.Width + CON_CHAGE_SIZE 037 038 '画面のフォームサイズを整える 039 Call sub_FormChangeSize 040 End Sub 041 042 Private Sub sub_FormChangeSize() 043 With frmPDFBrauzar 044 .AcroPDF1.Width = .Width - 10 045 .AcroPDF1.Height = .Height - .AcroPDF1.Top40 046 End With 047 End Sub


 Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
 

注意

  • 当機能はAcrobatアプリ本体の AcroPDF.dll を使用して動作します。
    つまりAcrobatアプリ本体が環境にインストールされてないと動作しません。

< 戻る >

「AcroPDFLib.AxAcroPDF: Excel VBAサンプル(B)」への3件のフィードバック

  1.  こんばんは。
    AxAcroPDF006を使用させていただいております。
    仕事でPDFを閲覧することが多いため、大変重宝しております。

    一度にみるPDFのページ数が多いため、コンボボックスのtwocolumnleftを選択して、2ページみれるようにしております。

    PDFを見おわって、ダイアログを開くボタンを押して、次のPDFを開いたときに、2ページ表示を維持するようにしたいのですが、そのようなことは可能でしょうか?

    コンボボックスは、twocolumnleftと表示されておりますが、
    1ページ表示になってしまいます。

    色々奮闘してみましたが、手に負えなかったため質問させていただきました。

    もしできるのであれば、アドバイスをいただけましたら幸いです。

  2. お世話になります。
    いつもAxAcroPDF006を使用させていただいております。
    PDFを見る機会が多いので使用しておりますが大変重宝しております。

    PDFのページ数が多いため、コンボボックスのtwocolumnleftを選んで、
    1画面で2ページを見るようにしております。

    PDFを見終わった後、次のPDFを開くと、コンボボックスはtwocolumnleftとなっておりますが、1画面1ページ表示になってしまいます。

    次のPDFを開いてもtwocolumnleftの状態を維持したまま開くことは可能でしょうか?

    色々試してみましたが、できなかったため質問させていただきました

    何かコメントいただけましたら幸いです。

  3. Pachyさん。初めまして。

    >次のPDFを開いてもtwocolumnleftの状態を維持したまま開くことは可能でしょうか?

    こちらのAcrobat Pro 8.2.3環境では twocolumnleft は維持されたままでPDFが表示されます。
    バージョンにより変わるみたいですね。
    『twocolumnleftの状態を維持』する事は可能です。
    以下の▼ロジックを3行追加して下さい。

    Private Sub cmdReadPDF_Click()
    On Error GoTo Err_cmdReadPDF_Click
    '入力チェック
    If Trim(txtURL.Text) = "" Then Exit Sub
    'PDFを表示する
    AcroPDF1.src = txtURL.Text
    'PDFコントロール上のツールバーを設定(非表示)にする
    AcroPDF1.setShowToolbar chbDisplayToolBar.Value
    '▼レイアウトモードを再設定する
    If cmbsetLayoutMode2.Value "" Then
    Call cmbsetLayoutMode2_Change
    End If
    Exit Sub
    Err_cmdReadPDF_Click:
    MsgBox Err.Number & " : " & vbCrLf & Err.Description, _
    vbOKOnly + vbCritical, _
    "実行エラー : cmdReadPDF_Click"
    End Sub

コメントを残す

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

CAPTCHA


★ 文章での質問は難しいですよネ。でも、早く解決して、家に帰りたい。


SAMURAI Plugin

コメントをする時は出来れば以下もお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れる時はコードを全て全角文字列にしてください。コチラで半角に戻します。それでもエラーが回避できない時はコメント下さい。個別に対処します。



お仕事で当サイトを見ている方へ
考え込んだら、ご質問下さい。
一緒に解決策を考えましょう。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください