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

Пустоты работали.

Ответы на вопрос(1)

Ваш ответ на вопрос