
Running .NET from VBA
Apenas experimentando diferentes maneiras de carregar assemblies CLR (.NET) em VBA local e remotamente usando AppDomain.ExecuteAssembly ou qualquer outro método útil depois de contornar o AccessVBOM (acesso programático ao projeto do Visual Basic não é confiável) a partir do VBA.
vba2clr.*.vba:
AccessVBOM para 1Word.Application. (poderia ser Excel.Application, MS PowerPoint, Access ..etc).wordObj.Application.Run...ExecuteAssembly.clr.2.0.vba: Até .NET 3.5
IDomain, ICRHost)AppDomain.ExecuteAssembly em dois arrays separados (variáveis, tipos).AppDomain.ExecuteAssembly(Arg1, Arg2) (offset 51 da VFTable) onde Arg1 é a "URL do Assembly .NET" ou "Caminho Local" e Arg2 é o valor de retorno.QueryInterface, AddRef, Release.ExecuteAssembly.clr.x.vba: suporta .NET 2, 3.5 e 4.x
Word.Application (ou Excel.Application ..etc), resultará na criação de um WinWord.exe adicional como processo filho de svchost.exe em vez do processo principal WinWord.exe.AccessVBOM é modificada/restaurada via COM usando WScript.Shell; usar APIs win32 pode ser uma alternativa melhor.AccessVBOM, deixarei isso para outro dia...System.CodeDom.Compiler, podem ser usadas para compilar/executar código c# a partir do VBA, consulte a referência abaixo;