
Running .NET from VBA
Solo experimentando con diferentes formas de cargar ensamblados CLR (.NET) en VBA local y remotamente usando AppDomain.ExecuteAssembly o cualquier otro método útil después de sortear AccessVBOM (el acceso programático al proyecto de Visual Basic no es de confianza) desde VBA.
vba2clr.*.vba:
AccessVBOM a 1Word.Application. (podría ser Excel.Application, MS PowerPoint, Access, etc.).ExecuteAssembly.vba codificado en b64/hex)ExecuteAssembly.vba usando wordObj.Application.Run...ExecuteAssembly.clr.2.0.vba: Hasta .NET 3.5
IDomain, ICRHost)AppDomain.ExecuteAssembly en dos matrices separadas (variables, tipos).AppDomain.ExecuteAssembly(Arg1, Arg2) (desplazamiento 51 del VFTable) donde Arg1 es la "URL del ensamblado .NET" o "ruta local" y Arg2 es el valor de retorno.QueryInterface, AddRef, Release.Word.Application (o Excel.Application, etc.), dará como resultado el inicio de un WinWord.exe adicional como proceso hijo de svchost.exe en lugar del proceso principal WinWord.exe.AccessVBOM se modifica/restaura mediante COM usando WScript.Shell; usar APIs de win32 podría ser una mejor alternativa.AccessVBOM; lo dejaré para otro día...System.CodeDom.Compiler se pueden usar para compilar/ejecutar código c# desde VBA; consulta la referencia a continuación;ExecuteAssembly.clr.x.vba: soporta .NET 2, 3.5 y 4.x