HackerTrans
TopNewTrendsCommentsPastAskShowJobs

n013

no profile record

Submissions

Monkey Patching in VBA

ecp-solutions.github.io
46 points·by n013·5 เดือนที่ผ่านมา·14 comments

Sandboxed script execution from VBA with support for module system

github.com
1 points·by n013·5 เดือนที่ผ่านมา·1 comments

Hacking VBA to support native scripting runtime with no COM dependencies

github.com
24 points·by n013·7 เดือนที่ผ่านมา·10 comments

comments

n013
·5 เดือนที่ผ่านมา·discuss
>VBA is permanently disabled in most large corporate and government environments these days as a security precaution.

This is exactly the argument used for deprecating a so powerful language, but It's all a Microsoft marketing strategy. Organizations creating and running only their workbooks are equally enforced to shutting down VBA, Why? Because VBA doesn't pay Microsoft rent.
n013
·5 เดือนที่ผ่านมา·discuss
Link to the subject: https://ecp-solutions.github.io/ASF/Language%20reference.htm...
n013
·5 เดือนที่ผ่านมา·discuss
At VBA side the code is clean and highly manageable.

Sub RunModule() Dim eng As New ASF

    ' Set working directory
    eng.InjectVariable "wd", ThisWorkbook.Path
    
    ' Execute module file
    Dim result As Variant
    result = eng.Execute(ThisWorkbook.Path & "\main.vas")
    
    Debug.Print result
End Sub

ASF isn't just a framework, is a modern language that we can run inside VBA.
n013
·6 เดือนที่ผ่านมา·discuss
Honestly, ASF is literally sandboxed. Objects cannot be injected in the runtime. Also, VBA Expressions is intentionally limited to receive and return VBA strings. So, the system is safe for execute code from (almost) anyone.
n013
·6 เดือนที่ผ่านมา·discuss
You can inspect the AST in order to debug your code. For syntax highlighting, use tools like Notepad++ (ASF shares most of the syntax with Javascript). Each piece of code is commented, no obscure machine code.