Excel VBA, aby uzyskać tytuł strony z adresu URL

Tytuł strony HTML w Excel VBA

Wiem, że to dość stare, ale mam z tym problem. Zbudowałem parser historii przeglądarek, który przegląda dane historii z Firefox, IE, Safari i Chrome na komputerach naszych użytkowników (Office), a następnie pobiera tytuły stron, które nie używają tego kodu.

Dostaję wyskakujące okienka z IE, nawet jeśli powinny być ukryte. Czy chcesz opuścić tę stronę, pobrać wyskakujące okienka, zainstalować to ActiveX lub to, które muszę zamknąć, gdy się pojawią.

Czy istnieje sposób na ich wyłączenie lub automatyczne zamknięcie z VBA? Jeśli nie zrobię tego ręcznie, komputer / Excel ostatecznie przestaje działać, ponieważ kończę na kilku nie zamkniętych oknach IE lub błędach, ponieważ nie można już otworzyć instancji IE.

Plus czuję się dość chory wiedząc, że IE otwiera strony, o których nic nie wiem. Mamy więcej infekcji w tym biurze niż kiedykolwiek wcześniej. Aby oprogramowanie firmy mogło działać, musimy użyć IE.

Czy jest lepszy sposób na to, czy jesteśmy po prostu ofiarami systemu. Jestem po prostu przerażony tym, jak niewiele można zrobić w MS Office VBA w porównaniu z OOo BASIC. Przynajmniej podstawowa funkcja (tablice redimensioning, obsługa FTP).

Proszę o miłość małp, niech będzie lepszy sposób.

Próbowałem też ....

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

I ten.....

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

Nether działa.

questionAnswers(1)

yourAnswerToTheQuestion