Monkey Patching in VBA
43 points by n013 5 days ago | 9 comments

password4321 14 minutes ago
VBA is permanently disabled in most large corporate and government environments these days as a security precaution.

Interesting to see this HN user on a campaign to promote a boutique new language running on top of VBA.

20251227 https://news.ycombinator.com/item?id=46403704 Hacking VBA to support native scripting runtime with no COM dependencies

reply
layer8 10 minutes ago
Document-embedded VBA macros are disabled, but not VBA in general.
reply
asveikau 2 hours ago
I thought that the VBscript engine, accessible from cscript.exe, also has a builtin JavaScript frontend. The idea being that both of these are a scripting language that can interact with COM objects. No idea if the various embeddings of VBScript such as excel or ASP can use js out of the box though.
reply
layer8 21 minutes ago
As the sibling comment notes, VBScript isn't JScript, though both are executed by the Windows Script Host (wscript/cscript). JScript had already been deprecated in 2009 with IE 8.

VBScript is deprecated since 2023 and in the process of being removed: https://techcommunity.microsoft.com/blog/windows-itpro-blog/...

You also cannot run VBScript (nor JScript) from VB or VBA, other than invoking it as a separate process. VBA is not an "embedding of VBScript". VB/VBA are compiled to an intermediate representation called P-code, they aren't scripts in the sense of being executed from a textual representation like VBScript/JScript.

reply
22c 18 minutes ago
I believe you're thinking of JScript, they're not quite the same thing.
reply
EvanAnderson 6 hours ago
If it's not immediately clear toyou what this thing (ASF) (like it wasn't to me) this quote from the Github README is useful:

> JavaScript-like scripting language implemented entirely in VBA. Zero COM dependencies. Native Office object model integration with runtime monkey patching capabilities.

That's bananas!

The specific feature being referred-to by the current title ("Monkey Patching in VBA") is functionality to allow you to override or add additional methods to the stock Office COM objects in this ASF scripting language. That's wild.

The extensibility of the Office object model using VBA is powerful and horrifying.

reply
RyJones 4 hours ago
VBA is an interesting language. The builtins are huge - C++ may never have a loan amortization primitive, but VBA sure did/does
reply
_boffin_ 6 hours ago
Okay… this is novel to me and love it! Wish I knew about this 10 years ago.
reply