Использование IWebBrowser2 для размещения виджетов в PowerPoint - ошибка автоматизации: ошибка не определена
Я создал простой макрос, чтобы поместить виджет HTML из Weather.com в слайд PowerPoint.
Это не на основе событий, но ActionButtons
позвонить ConnectWidget
подпрограмма, при переходе к слайду. Это работает нормально, но вы заметите, что я смог заставить это работать, сначала удалив существующую фигуру WebBrowser, а затем воссоздав ее.
Я должен был сделать это, в конечном счете, потому что любой вызов метода из wb
после .Navigate
, Я получаю ошибку автоматизации / неуказанную ошибку или метод недоступен. Так, например, я не мог позвонить на wb.Refresh
при перемещении назад и вперед между слайдами, без предварительного полного удаления формы браузера и ее повторного создания.
Вероятно, есть что-то очевидное, что я упускаю из виду - есть мысли о том, что может быть причиной этих ошибок? Google не нашел ничего действительно полезного в решении проблемы.
Sub ConnectWidget()
Dim sld As Slide
Dim pres As Presentation
Dim shp As Shape
Dim wb As IWebBrowser2
Dim fname As String: fname = "c:" & Environ("homepath") & "\widget2.html"
Set pres = ActivePresentation
Set sld = pres.Slides(2)
On Error Resume Next
sld.Shapes("weatherwidget").Delete
On Error GoTo 0
If Len(Dir(fname)) = 0 Then CreateHTML fname
Set shp = sld.Shapes.AddOLEObject(100, 200, 200, 150, _
"Shell.Explorer.2")
shp.Name = "weatherwidget"
Set wb = sld.Shapes("weatherwidget").OLEFormat.Object
With wb
.Navigate (fname)
End With
' wb.Refresh '## UNCOMMENT THIS LINE AND YOU WILL GET AN ERROR
Set wb = Nothing
On Error Resume Next
Kill fname
On Error GoTo 0
End Sub
Private Sub CreateHTML(fileName$)
'Createsa plaintext HTML file that IWebBrowser2 can navigate
'<script type="text/javascript" src="http://voap.weather.com/weather/oap/90210?template=GENXH&par=3000000007&unit=0&key=twciweatherwidget"></script>
Dim htmlTxt As String
Dim fs As Object
Dim a As Object
htmlTxt = "<script type=" & Chr(34) & "text/javascript" & Chr(34) & "src=" & Chr(34) & _
"http://voap.weather.com/weather/oap/90210?template=GENXH&par=3000000007&unit=0&key=twciweatherwidget" _
& Chr(34) & "></script>"
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile(fileName, True)
a.WriteLine htmlTxt
a.Close
End Sub
Вот одна из таких ошибок. Обратите внимание, что у меня нет возможности Debug
Ошибка. Все, что я могу догадаться, перешагнув код, это то, что любой вызов метода после .Navigate
приведет к этой ошибке.