Full Chromium WebView2 in VBA. DOM access. JSON engine. 59 events.
Multi-browser pooling. Deploys inside your .accdb
— no admin rights, no registration, no IT tickets.
Private Sub m_lv_WebViewReady()
m_lv.Navigate "https://your-dashboard.html"
End Sub
Your first browser — 3 lines. Drop control, wire event, navigate.
30 days · No credit card · No registration required · 32-bit & 64-bit
I spent years building production Access and Excel applications. When Microsoft shipped the Edge Browser Control, I assumed it was the upgrade we'd all been waiting for — Chromium rendering, modern CSS, real JavaScript.
Then I sat down to build something real with it. Four methods. One event. No DOM. No JSON. Access only. Trusted Domains on everything. I couldn't finish what I started.
I built on top of WebView2 and added everything Microsoft left out. Every method in this API came from a real project I couldn't finish with what was available.
Comparing LiteView2 to other options? Read the 2026 Buyer's Guide — covers every realistic alternative.
If you build Access or Excel applications for corporate environments, you already know the pain: users can't install software. IT won't approve the request for weeks. The vendor-signed form takes longer than the feature.
LiteView2 doesn't need any of that. Copy the two OCX files next to your
.accdb or .xlsm. Paste 8 lines of bootstrap VBA.
It runs — without touching the registry, without regsvr32, without an installer,
without asking anyone for permission.
How it works — 3 steps:
LiteView2_x64.ocx next to your .accdb fileGetPool().CreateInControl("url", Me.Frame1) on any formThis alone justifies the switch. The Edge Browser Control requires Microsoft 365 to be present. LiteView2 requires nothing that isn't already on Windows 10 and 11.
This is why LiteView2 works in environments where other solutions never even get approved.
"Every day you spend writing workarounds for a 4-method API is a day you're not building the feature your users actually need."
These aren't edge cases. They're the first things you try to build.
There is no way to read or write a form field value directly. You inject JavaScript as a string, fire it into the void, start a timer, wait 200ms, then poll for a result that may come back empty.
Not available in the default controlNo built-in JSON parsing. No path syntax. No typed returns. Write your own parser, ship a third-party library, or spend an afternoon hand-rolling string extraction for an API response.
Not available in the default controlThe Edge Browser Control works only inside Microsoft Access. Every Excel, Word, PowerPoint, or VB6 application you build gets no browser control at all. You start over.
Not available in the default control
One usable event: NavigationCompleted. No message
events. No load events. No failure events beyond a boolean flag.
If something goes wrong silently, you'll never know.
Every URL your control navigates to must be pre-registered as a Trusted Domain. Navigate to an unlisted URL and it silently fails. Dynamic routing, local files, and API calls all require configuration you can't ship.
Not available in the default controlThe Edge Browser Control requires Microsoft 365 to be present on the target machine. You cannot distribute it standalone. You cannot ship it without the full Office stack being installed first.
Not available in the default control
This is not a list of minor inconveniences.
Each of these blocks real projects from shipping.
If you're still building around these limitations, you're not solving the problem — you're working around it.
This is the starting point most VBA projects are working from.
LiteView2 fixes all three.
It's not your code.
It's the control.
You're trying to build real features on top of something that was never designed for it.
These are tasks that are simply not possible with the Edge Browser Control — or require workarounds no one should have to write in 2026.
' Read a field value — no DOM access in Edge control
' You have to inject JS as a string, then poll for result
Dim js As String
js = "window.__lv_val = document.getElementById" & _
"('user-email').value;"
lv.ExecuteJavascript js ' fire and forget — no return
' Now start a timer and wait ~200ms for it to run
' Then poll RetrieveJavascriptValue — may return Empty
Dim val As String
val = lv.RetrieveJavascriptValue("window.__lv_val")
If val = "" Then val = lv.RetrieveJavascriptValue(...)
' Write to another field — same mess in reverse
Dim js2 As String
js2 = "document.getElementById('confirm-email')" & _
".value = '" & val & "';" ' breaks if val has a '
lv.ExecuteJavascript js2
' Click the submit button — inject another JS string
lv.ExecuteJavascript "document.getElementById('btn-submit').click();"
' Read a field, write to another, click submit
' Direct VBA calls — no JS injection, no polling
email = lv.GetElementValueById(idx, "user-email")
lv.SetElementValueById idx, "confirm-email", email
lv.ClickElementById idx, "btn-submit"
' Parse a JSON API response — no third-party library, no hand-rolled parser
Dim j As Object : Set j = CreateObject("LiteView2.Json")
total = j.GetValue(apiResponse, "summary.total_usd") ' typed Double
customer = j.GetValue(apiResponse, "orders[0].customer.name") ' path syntax
count = j.Count(apiResponse, "orders") ' array length
' Three lines. Works without WebView2. Works in Excel, Access, Word, VB6.
CreateObject("LiteView2.Json").
' Standard Module — modLV2Pool (add once per project)
' OCX must be in the same folder as your .accdb / .xlsm
#If Win64 Then
Private Declare PtrSafe Function SetDllDirectory Lib "kernel32" _
Alias "SetDllDirectoryW" (ByVal lpPathName As LongPtr) As Long
Private Declare PtrSafe Function LiteView2_ActivateManifest _
Lib "LiteView2_x64.ocx" (ByVal path As LongPtr) As Long
Private Declare PtrSafe Function LiteView2_CreateBrowserPool _
Lib "LiteView2_x64.ocx" () As Object
#Else
Private Declare PtrSafe Function SetDllDirectory Lib "kernel32" _
Alias "SetDllDirectoryW" (ByVal lpPathName As LongPtr) As Long
Private Declare PtrSafe Function LiteView2_ActivateManifest _
Lib "LiteView2_x86.ocx" (ByVal path As LongPtr) As Long
Private Declare PtrSafe Function LiteView2_CreateBrowserPool _
Lib "LiteView2_x86.ocx" () As Object
#End If
Private m_Pool As Object
Public Function GetPool() As Object
If m_Pool Is Nothing Then
Dim p As String
p = CurrentProject.Path ' Access (Excel: ThisWorkbook.Path)
SetDllDirectory StrPtr(p) ' Tell Windows where the OCX lives
#If Win64 Then
LiteView2_ActivateManifest StrPtr(p & "\LiteView2_x64.ocx")
#Else
LiteView2_ActivateManifest StrPtr(p & "\LiteView2_x86.ocx")
#End If
Set m_Pool = LiteView2_CreateBrowserPool()
m_Pool.ActivateLicense "Your Company", "YOUR-LICENSE-KEY" ' omit during 30-day trial
End If
Set GetPool = m_Pool
End Function
Takes less than 5 minutes to integrate.
The same feature. The same developer. The difference is the control.
GetElementValueById — read any field, synchronous, no JS
CreateObject("LiteView2.Json") — path syntax, typed returns
LiteView2 is built on WebView2 — but it is not a thin wrapper. It is a complete VBA surface built around every real use case VBA developers actually encounter — because those use cases had no solution until now.
LiteView2 is built on WebView2, but the WebView2 API exposes none of what VBA developers actually need. DOM helpers, JSON parsing, bidirectional messaging, recordset push, multi-browser pooling, PDF print, screenshot capture — none of this exists in raw WebView2. Every method was written because a real VBA project required it.
A workaround patches a missing feature. LiteView2 provides 270+ methods because each one maps to something real — reading a form field, parsing a JSON response, deploying without an installer, handling a navigation failure event. This is the API VBA developers actually needed.
The Edge control locked you into one host. LiteView2 runs in Excel, Access, Word, PowerPoint, and VB6. One control. One API. Every VBA host you already work in — without rewriting anything.
You're not upgrading a control.
You're removing a limitation.
Not a demo kit. Not a proof of concept. A production control with a documented API and active development.
28 synchronous VBA methods to read, write, and interact with elements by ID. GetElementValueById, SetElementValueById, ClickElementById — direct calls, no JS injection, no polling, no async gaps.
ILV2Json: 36 methods with dot-and-bracket path syntax
(orders[0].customer.name). Works without WebView2.
CreateObject("LiteView2.Json") in any VBA host — Access, Excel, VB6.
WebViewReady, NavigationCompleted, NavigationFailed, WebMessageReceived, FormSubmit, BeforeUnload, ContextMenuRequested, NewWindowRequested — every real production event you need, not just one boolean flag.
One call to LiteView2_ActivateManifest. Copy two OCX files next to your database. No registry writes. No admin rights. No installer. No IT ticket. Ships inside your .accdb.
Access, Excel, Word, PowerPoint, and VB6 — both 32-bit and 64-bit. One OCX. One API surface. The Edge Browser Control is Access-only. LiteView2 runs anywhere VBA runs.
IBrowserPool supports multiple concurrent browser instances, each with its own navigation, events, and profile. Embed browsers in Access frames without COM registration. Scale to as many instances as your application needs.
v1.0 · Active development · Last updated April 2026
270 methods isn't a feature list. It's proof of depth.
No subscription. One payment. Yours forever.
Full functionality — nothing locked
Full functionality — nothing locked
Perpetual license — no subscription
After year 1, renew to keep receiving new releases, bug fixes & support. Your license and software never expire if you don't — your existing version keeps working.
Perpetual license — no subscription. Invoice & Payoneer billing on request.
#If Win64 Then.
LiteView2_ActivateManifest once, and you're
done. Zero registry writes.
You can test everything — DOM, JSON, deployment — with full functionality for 30 days.
No locked features. No degraded trial.
Guides, comparisons, and reference docs — all in one place.
Now remove it.
Download it. Run it. See the difference in 5 minutes.
You can keep working around it — or you can replace it.
Full functionality · Nothing locked · No credit card · 30 days