Limitations of Access 365 Edge Browser Control (and What to Use Instead)

Microsoft's Edge Browser Control replaced the dead IE WebBrowser control in Access 365, and on the surface it looks like the upgrade every VBA developer was waiting for: Chromium rendering, modern CSS, real JavaScript. Then you sit down to build something and find out the VBA surface is four methods, one event, no DOM access, no JSON helpers, and nothing for Excel, Word, or VB6. This page documents what the control actually exposes, where it breaks in practice, and the alternative.

What the Access 365 Edge Browser Control Actually Exposes

According to Microsoft's own documentation, the control's VBA-facing API is:

That's the entire surface. Everything else you used to do with WebBrowser.Object.Document in the old control is gone — WebView2 has no Object property, so Microsoft did not port MSHTML-style DOM access into the new control. The result is a Chromium engine with a VBA API smaller than what VB6 had in 1998.

The Gaps That Matter in Real Projects

1. No DOM access from VBA

You can't read an element's value, click a button by ID, or submit a form directly from VBA. You can only run JavaScript and hope the result round-trips cleanly through RetrieveJavascriptValue — which multiple developers have reported is unreliable with timing-dependent content and requires non-standard quirks like omitting trailing semicolons.

2. No JSON engine

Every VBA project that talks to a modern web page talks to JSON. The Edge control gives you no parse/stringify helpers, no path queries, no type coercion. Either you hand-roll a parser in VBA, or you push every piece of data through ExecuteJavascript string concatenation and pray about escaping.

3. One event

DocumentComplete tells you the page is loaded. That's it. There is no navigation-started event, no navigation-failed event, no download event, no new-window event, no web-message-received event, no auth-required event, no process-crashed event. Anything event-driven has to be polled from VBA.

4. Trusted Domains whitelist required

The Edge control's Trusted Domains property is not optional hardening — it is a prerequisite. Every URL in a redirect chain must be pre-registered. Miss one (say, an IdP's callback origin) and the flow silently fails. Changes only take effect after closing and reopening the control. This makes it unusable for anything that hits real-world redirects (OAuth, SSO, CDN-hosted login pages).

5. Access-only

Excel VBA developers cannot use the Edge Browser Control. Neither can Word VBA, PowerPoint VBA, or VB6. It is shipped as an Access form control and exposes no standalone COM surface.

6. Documented bugs

Reports from production users include: file paths with spaces not resolving, cannot switch between https://msaccess/ local content and live URLs without reloading the form, right-click crashes in some builds, 2048-character limit on ControlSource assignments from VBA, and Edge keyboard shortcuts not honored.

Comparison: IE WebBrowser vs Access Edge Browser Control vs LiteView2

All three controls render web content inside a VBA host. That is where the similarity ends. This table is based on Microsoft's own documentation for the Edge Browser Control and the LiteView2 feature manifest.

Capability IE WebBrowser Access Edge Control LiteView2
Rendering engine MSHTML (IE11 legacy) Chromium (WebView2) Chromium (WebView2)
VBA method count Many (via .Object) 4 450+
VBA events Many 1 (DocumentComplete) 59
DOM access from VBA Yes (MSHTML DOM) No Yes (28 DOM helpers)
VBA ↔ JavaScript messaging Limited One-way ExecuteJavascript PostWebMessage, host objects, registered callbacks
JSON engine None None ILV2Json — parse, path query, stringify
Multiple browser instances One per control One per control Pool of N, shared or isolated profiles
InPrivate / profile isolation No No Yes
Print to PDF / screenshot capture No No Yes (PrintToPdf, CaptureScreenshot)
Download control (pause/resume/cancel) No No Yes
Cookie / cache management Partial No Yes
Proxy support System-wide only No Yes (per-browser)
Trusted Domains required for navigation No Yes (whitelist every URL) No (optional)
Works in Excel VBA / Word VBA / VB6 Yes (with quirks) Access only Yes — Excel, Access, Word, PowerPoint, VB6
Registration-free deployment No No (requires MS365) Yes (no regsvr32, no admin)
Active development Frozen Slow Active

What LiteView2 Enables That the Edge Control Does Not

The capability gap translates into concrete things you can ship:

Example: Things You Cannot Do With the Access Edge Control

Two short VBA snippets that would not work with Microsoft's control. Both work in Access, Excel, Word, and VB6 with LiteView2.

Read a page element and write a value — no .Object.Document required

Dim lv As New LiteView2.BrowserPool
Dim idx As Long
idx = lv.CreateInControl("https://example.com/form", Me.Frame1)

' Wait for load (59 events to choose from in real code)
Do While lv.IsLoading(idx): DoEvents: Loop

' Read a field, write to another, click submit — all from VBA
Dim email As String
email = lv.GetElementValueById(idx, "user-email")
lv.SetElementValueById idx, "summary-email", email
lv.ClickElementById idx, "btn-submit"

Parse a JSON response from a fetch call without hand-rolling a parser

Dim json As Object
Set json = CreateObject("LiteView2.Json")

Dim raw As String
raw = lv.ExecuteScriptWithResult(idx, _
        "fetch('/api/orders').then(r => r.text())")

Dim handle As Long
handle = json.Parse(raw)

Dim total As Double
total = json.GetValueH(handle, "summary.total_usd")

Dim firstCustomer As String
firstCustomer = json.GetValueH(handle, "orders[0].customer.name")

Neither of these is possible with Navigate + Refresh + ExecuteJavascript + RetrieveJavascriptValue alone. The DOM helpers come from the ILiteView2Ctrl interface; JSON parsing comes from ILV2Json.

Heads-up on Trusted Domains: If you tried the fetch example in the Access Edge Control, it would also need every URL in the response chain (CORS preflight, redirects, CDN) pre-registered in the Trusted Domains table, and require a form reload after any change. LiteView2 navigates and fetches any URL by default.

Evaluate LiteView2

LiteView2 ships as a single OCX. Drop it next to your database or workbook, paste a short bootstrap module, and call CreateInControl. Free 30-day trial, no installer, no admin rights, no registry writes.

Works in Access, Excel, Word, PowerPoint, and VB6 • 32-bit and 64-bit • Registration-free deployment • Invoice / Payoneer billing on request

Related Reading