web-dev-qa-db-ja.com

ExcelVBAユーザーフォームにPDF

私はExcel2016を実行していますが、以下が互換性の問題である場合に関連する可能性があります...

要するに、Excelのユーザーフォームに埋め込まれたPDFを表示しようとしています。

UserForm1というユーザーフォームがあります。

次の追加の参照を有効にしました。

  • Microsoft Visual Basic for Applications Extensibility 5.3
  • Adobe AcrobatBrowserコントロールタイプライブラリ1.0

これにより、Adobe PDF Readerを「追加のコントロール」として追加できます。

Additional Controls dialog

コントロールはハッチングされたボックスアイコン(左下)として表示されますが、それが意図されているかどうかはわかりません。次に、これらのオブジェクトの1つをUserForm1に(プログラムとデザインビューの両方で)追加しようとすると、エラーが発生します。

要素が見つかりません

参考までに、私が使用していたVBAの関連する行は次のとおりです。

Dim PDFviewer As AcroPDF
Set PDFviewer = PDForm.Frame1.Controls.Add("AcroPDF.PDF.1")

このAdobeフォーラムのスレッドから取得したもの: https://forums.Adobe.com/thread/1065554

オンラインのリソースは、AcroPDFコントロールがサポートされなくなった可能性があることを示唆しています。もしそうなら、私が望むことを達成するための別の方法はありますか?

6
Wolfie

AcroPDFを使用する代わりに、WebBrowserオブジェクトを使用してみてください。

追加の制御を含める必要があります

Microsoft Web Browser

WebBrowser1という名前のユーザーフォームにWeBrowserを追加します

Private Sub UserForm_Click()
    Me.WebBrowser1.Navigate "about:blank"
    Me.WebBrowser1.Document.write "<HTML><Body><embed src=""C:\temp\SO_Answers\test.pdf"" width=""100%"" height=""100%"" /></Body></HTML>"
End Sub

PDFに直接.Navigateすることができますが、私のコメントを引用すると:

"マシンの設定によっては、html部分を使用する方が安全です。場合によっては、直接ナビゲーションによって表示ではなくダウンロードが開始されます。"

8
cyboashu