TOP > AcroPDFLib.AxAcroPDF > Excel VBAサンプル(B)
AcroPDFLib.AxAcroPDFオブジェクトの一部を使ったExcel VBAサンプルです。
Acrobat Readerと同じ動作をします。
当ページ最下部の注意も参照してください。
Excelファイルのダウンロード
動作確認環境
- WindowsXP Pro + SP3 + WindowsUpdate + Acrobat Pro 8.2.3
※Acrobat Readerのみの環境では動作しません。
サンプル実行画面
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.Top - 40
046 End With
047 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
注意
- 当機能はAcrobatアプリ本体の AcroPDF.dll を使用して動作します。
つまりAcrobatアプリ本体が環境にインストールされてないと動作しません。
< 戻る >
こんばんは。
AxAcroPDF006を使用させていただいております。
仕事でPDFを閲覧することが多いため、大変重宝しております。
一度にみるPDFのページ数が多いため、コンボボックスのtwocolumnleftを選択して、2ページみれるようにしております。
PDFを見おわって、ダイアログを開くボタンを押して、次のPDFを開いたときに、2ページ表示を維持するようにしたいのですが、そのようなことは可能でしょうか?
コンボボックスは、twocolumnleftと表示されておりますが、
1ページ表示になってしまいます。
色々奮闘してみましたが、手に負えなかったため質問させていただきました。
もしできるのであれば、アドバイスをいただけましたら幸いです。
お世話になります。
いつもAxAcroPDF006を使用させていただいております。
PDFを見る機会が多いので使用しておりますが大変重宝しております。
PDFのページ数が多いため、コンボボックスのtwocolumnleftを選んで、
1画面で2ページを見るようにしております。
PDFを見終わった後、次のPDFを開くと、コンボボックスはtwocolumnleftとなっておりますが、1画面1ページ表示になってしまいます。
次のPDFを開いてもtwocolumnleftの状態を維持したまま開くことは可能でしょうか?
色々試してみましたが、できなかったため質問させていただきました
何かコメントいただけましたら幸いです。
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