2016-12-22 8 views
3

Я запускаю Excel 2016, и не уверен, что у меня есть простая проблема совместимости или что, надеюсь, кто-то может помочь мне найти исправление или предложить альтернативу ...VBA Excel, Показать PDF в UserForm

Вкратце, я пытаюсь отобразить PDF, встроенный в UserForm в Excel.

У меня есть UserForm, скажем UserForm1.

Я включил следующие дополнительные ссылки:

Microsoft Visual Basic for Applications Extensibility 5.3

Adobe Acrobat Browser Control Type Library 1.0

Это позволяет мне добавить Adobe PDF Reader как "дополнительный контроль"

enter image description here

контрольной появляется как значок вылупившегося окна (внизу слева), что я не уверен, что это предназначено. Тогда, если я пытаюсь добавить один из этих объектов к UserForm1 (как программно, и с точки зрения дизайна) он дает мне ошибку

Элемент не найден

Для справки, соответствующие строки VBA я был используя были:

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

который я взял из этого Adobe форумов темы: https://forums.adobe.com/thread/1065554

ресурсов интернетов предположим, что управление AcroPDF больше не поддерживается. Если да, есть ли другой способ добиться того, чего я хочу?

Благодаря

+1

Один из альтернатив может быть попыткой - добавить элемент управления браузера, а затем использовать Iframe для отображения PDF. – cyboashu

+0

Мне нужно заглянуть в управление браузером, из упоминания IFrame, я полагаю, что это управляется через HTML? – Wolfie

+0

Да, вы создадите строку html на флайе с помощью пути pdf и напишите в документ управления браузером. – cyboashu

ответ

6

В качестве альтернативы использованию AcroPDF, попробуйте использовать WebBrowser Object.

Это требует в том числе дополнительного контроля

Microsoft Web Browser

Добавить WeBrowser на UserForm имени WebBrowser1

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 

Вы можете просто .Navigate к PDF непосредственно, но, чтобы цитировать мой комментарий:

«Безопаснее использовать часть html, dep заканчивая настройками машины, иногда прямая навигация начнет загрузку вместо отображения. "