.net - objetos - worksheet excel español
¿Cómo puedo usar objetos.NET desde Excel VBA? (2)
VBA puede hacer uso de cualquier objeto .NET que esté expuesto a COM. No sé si GZipStream es o no, pero supongo que sería más fácil para usted crear un objeto .NET separado que es un envoltorio alrededor de la funcionalidad de GZipStream que desea utilizar. A continuación, puede exponer su objeto a COM, y luego VBA debe hacer uso de él.
Tenga en cuenta que el conjunto que contiene su objeto COM (y su biblioteca de tipos también, creo, aunque no estoy seguro de eso) deben estar en el mismo directorio que el ejecutable principal (winword.exe, o lo que sea) o en el GAC. Esto se debe a las reglas de carga de CLR para ensamblajes.
¿Puede el código VBA instanciar y usar objetos .NET? La clase específica que me interesa es System.IO.Compression.GZipStream.
Para Info GAC es la caché de ensamblados global de .NET
Creo que Andy dio con esta respuesta, pero no estoy seguro de que el aspecto relacionado con las reglas de carga de CLR sea el correcto.
El ensamblado .NET que contiene la clase que actúa como envoltorio para GZipStream estaría expuesto a COM y registrado como cualquier otra biblioteca y clase de proyecto COM. En este sentido, VBA encontraría la ubicación del ensamblado .NET expuesto a COM a través del registro. Puede ser inteligente colocar el ensamblado en el GAC, para que no pueda moverse (ya que mover el ensamblaje invalidaría la información de registro), pero siempre que el registro apunte al lugar correcto, debería estar bien.
Un buen tutorial para principiantes sobre el tema está aquí
Espero que esto ayude...