Excel VBA, чтобы получить название сайта с URL
Заголовок HTML-страницы в Excel VBA
Я знаю, что это довольно старый, но у меня есть трудности с этим. Я создал анализатор истории браузера, который просматривает исторические данные из Firefox, IE, Safari и Chrome на компьютерах наших пользователей (Office), а затем получает заголовки для страниц, которые не используют этот код.
Я получаю всплывающие окна из IE, хотя он должен быть скрыт. Вы хотите покинуть эту страницу, скачать всплывающие окна, установить этот ActiveX, то, что я должен закрыть по мере их появления.
Есть ли способ подавить их или автоматически закрыть их из VBA? Если я не сделаю это вручную, компьютер / Excel в конечном итоге перестанет работать, поскольку у меня появятся несколько незакрытых окон IE или произойдет ошибка, потому что он больше не сможет открывать экземпляры IE.
Кроме того, я чувствую себя довольно плохо, зная, что IE открывает сайты, о которых я ничего не знаю. У нас в этом офисе больше инфекций, чем мне приходилось иметь дело раньше. Мы должны использовать IE для запуска программного обеспечения компании.
Есть ли лучший способ сделать это или мы просто жертвы системы. Я просто поражен тем, как мало можно сделать в MS Office VBA по сравнению с OOo BASIC. По крайней мере, базовая функция (изменение размеров массивов, поддержка FTP).
Пожалуйста, ради любви к обезьянам, пусть будет лучший путь.
Я тоже пытался ....
Function fgetMetaTitle(ByVal strURL) As String
Dim stPnt As Long, x As String
Dim oXH As Object
'Get URL's HTML Source
Set oXH = CreateObject("msxml2.xmlhttp")
With oXH
.Open "get", strURL, False
.send
x = .responseText
End With
Set oXH = Nothing
'Parse HTML Source for Title
If InStr(1, UCase(x), "<TITLE>") Then
stPnt = InStr(1, UCase(x), "<TITLE>") + Len("<TITLE>")
fgetMetaTitle = Mid(x, stPnt, InStr(stPnt, UCase(x), "</TITLE>") - stPnt)
Else
fgetMetaTitle = ""
End If
End Function
И этот.....
Function getMetaDescription(ByVal strURL As String) As String
'Requires Early Binding Reference to MSHTML Object Library
Dim html1 As HTMLDocument
Dim html2 As HTMLDocument
Set html1 = New HTMLDocument
Set html2 = html1.createDocumentFromUrl(strURL, "")
Do Until html2.readyState = "complete": DoEvents: Loop
getMetaDescription = html2.getElementsByTagName("meta").Item("Description").Content
Set html2 = Nothing
Set html1 = Nothing
End Function
Пустоты работали.