Вопрос:
Я использую Excel 2016, что может быть актуально, если ниже приведена проблема совместимости…
Короче говоря, я пытаюсь отобразить PDF, встроенный в пользовательскую форму в Excel.
У меня есть пользовательская форма, скажем, UserForm1.
Я включил следующие дополнительные ссылки:
- Microsoft Visual Basic для приложений расширяемость 5.3
- Библиотека типов элементов управления браузером Adobe Acrobat 1.0
Это позволяет мне добавить Adobe PDF Reader как “Дополнительный элемент управления”
Элемент управления отображается в виде заштрихованной коробки (слева внизу), но я не уверен, что это означало. Затем, если я попытаюсь добавить один из этих объектов в UserForm1 (как программно, так и в режиме конструктора), это выдаст мне ошибку
Элемент не найден
Для справки я использовал следующие строки VBA:
Dim PDFviewer As AcroPDF Set PDFviewer = PDForm.Frame1.Controls.Add(«AcroPDF.PDF.1»)
Что я взял из этой ветки форумов Adobe:
Ресурсы онлайн предполагают, что, возможно, элемент управления AcroPDF больше не поддерживается. Если так, есть ли другой способ достичь того, чего я хочу?
Лучший ответ:
В качестве альтернативы использованию AcroPDF попробуйте использовать объект WebBrowser.
Для этого требуется дополнительное управление
Microsoft Web Browser
Добавьте WeBrowser в UserForm с именем WebBrowser1
Private Sub UserForm_Click() Me.WebBrowser1.Navigate «about:blank» Me.WebBrowser1.Document.write «<HTML><Body><embed src=»»C:tempSO_Answerstest.pdf»» width=»»100%»» height=»»100%»» /></Body></HTML>» End Sub
Вы можете просто .Navigate в PDF напрямую, но, чтобы процитировать мой комментарий:
“Безопаснее использовать часть html, в зависимости от настроек компьютера, иногда прямая навигация начнет загрузку вместо отображения”.