VBA中如何使用Edge内核Browser?

问题:

在微软宣布停止对IE的支持后,许多使用VBA中Web Browser的用户遇到了困境,因为Web Browser使用的IE内核。然而微软并没有给出支持Edge的新版Web Browser,网上许多第三方的库也不够完善。

解决方案:

经过调研,libEdge可以较好的和VBA集成,实现在Excel中打开Browser,甚至能够通过执行js代码,获取web页面的信息。

https://github.com/bubdm/libEdge/tree/main/VBA_libEdge

注意:

项目需要WebView2Loader.dll和LibEdge.dll两个库,区分x86和x64版本。

示例代码:

vba 复制代码
Public Function GetEncodedCookieFromWebBrowser(serverIP As String) As String
    Dim url As String
    Dim encodedCookie As String
    Dim isValidIPFormat As Boolean
    Dim jsResult As String
    Dim path As String

    encodedCookie = ""
    url = "https://" + serverIP + "/proj/demo/" + Guid()
    isValidIPFormat = IsValidIP(serverIP)
    path = Application.ActiveWorkbook.path & "\"
    ChDir path

    If isValidIPFormat = False Then
        If VBA_StartEdge() <> 0 Then Exit Function

        VBA_Navigate url

        ' Wait for the page to fully load
        Do While Not PageLoaded
            Sleep 500 ' Sleep for 500 milliseconds to allow user interaction
            DoEvents
        Loop

        ' Wait until the cookie contains 'token%22'
        Do Until InStr(jsResult, "token%22") > 0
            If VBA_RunJavascript("document.cookie", jsResult) <> 0 Then
                VBA_StopEdge True
                Exit Function
            End If
            Sleep 500 ' Sleep for 500 milliseconds to allow user interaction
            DoEvents
        Loop
        encodedCookie = jsResult
        VBA_StopEdge True
    End If
    GetEncodedCookieFromWebBrowser = encodedCookie
End Function
相关推荐
小妖66614 天前
excel 怎么在单元格内容自动加上一段文字不能用公式
excel·vba
VBA633715 天前
VBA之Word应用第五章第五节 Range对象的属性(四)
vba
VBA633716 天前
VBA信息获取与处理专题七第一节 网络通信基础
vba
yivifu16 天前
怎样将Word文档中脚注引用后面的空格轻松删除
word·vba
VBA633717 天前
VBA之Excel应用第五章第四节 变量的生命周期
vba
VBA633722 天前
VBA中类的解读及应用第三十五讲 类对象的生死轮回----“二师兄”的成长历程之七
vba
SunnyDays101122 天前
使用 C# 添加、修改和删除 Excel VBA 宏 (无需 Microsoft Office Interop)
c#·excel··vba
VBA633724 天前
VBA 64位API声明语句第021讲
vba
VBA63371 个月前
VBA数据库解决方案第三十一讲 DELETE+ADDNEW实现类似于UPDATA功能
vba
Access开发易登软件1 个月前
Access 用 VBA 操作 SQLite,不用装任何驱动
jvm·数据库·sqlite·vba·access·access开发