INTEGRACION DE MS EXCEL CON OTROS PROGRAMAS.
V1.
Una de las razones por las cuales empecé a programar en VBA fue porque quería simplificar algunos cálculos de geotecnia (circulo de falla de taludes por método de Bishop). Hasta ese momento la programación en CPP era lo mejor y en realidad de haberme topado con algunos artículos más profundos de la interoperatividad de MS Office y Autocad seguramente me hubiera matado la cabeza haciendo esas rutinas en C++.
Hasta este punto me estoy acercando a un tema que espero tratar en un próximo articulo que es el control de Excel y otros programas desde un programa nuestro, por ejemplo si yo quisiera que un programa me generara informes en MS Excel, MS Word o EN OOo; pero eso es otra historia.
Bueno en realidad lo primero que debo mencionar es que por lo general este tipo de rutina se emplea en tareas muy simples y casi de exportación (adecuada) de datos, aunque en algunos casos y a falta de una herramienta mejor (Visual Studio) permite hacer maravillosas aplicaciones.
El término más importante en este tema es API. ¿Qué es una API? Application Programming Interface de sus siglas en inglés que no es otra cosa que una serie de objetos contenidos en liberarías (dll) que nos permiten entrar en los programas que queremos manejar, son por decirlo así: la puerta de entrada.
Entonces para poder usar un programa desde VBA es necesario que su desarrollador haya creado una API. (Bueno hay formas de buscar la entrada pero no es fácil y seguramente nos causará problemas de soporte)
Es necesario tener el programa instalado en nuestro PC dado que el compilador debe poder acceder a los Puntos de Entrada dejados por la API y de no encontrarlos nos producirá algún tipo de error.
Bueno y ahora pondré un ejemplo muy sencillo de cómo crear programas que usan otros programas desde VBA de MS Excel.
Ejemplo1:
VBA de Excel llama a MS Word.
1) En el dialogo de referencias busque MSWord y selecciónelo.
Y adicionar este codigo:
Sub LlamaWord()
Dim MyWordApp As Word.Application
Dim MyWordDoc As Word.Document
Set MyWordApp = New Word.Application
MyWordApp.Visible = True
Set MyWordDoc = MyWordApp.Documents.Add
With MyWordDoc
.Activate
.Select
.Application.Selection.TypeText “Este es un texto”
End With
End Sub
Ejemplo 2:
Llamar al Programa Autocad y adicionar una línea:
1) Agregar la referencia a Autocad:
2) Y escribir el siguiente código:
Sub LlamaACad()
Dim MyAcadApp As AcadApplication
Dim MyAcadDoc As AcadDocument
Dim p1 As ACAD_POINT, p2 As ACAD_POINT
Set MyAcadApp = New AcadApplication
MyAcadApp.Visible = True
Set MyAcadDoc = MyAcadApp.Documents.Add
With MyAcadDoc
.Activate
p1 = .Utility.GetPoint(, “P1”)
p2 = .Utility.GetPoint(, “p2”)
.ModelSpace.AddLine p1, p2
End With
End Sub
De la misma manera es posible integrarse con grana cantidad de programas como SAP2000 (V11+), OpenOffice, Adobe Acrobat, Todos los programas de MS Office, además de muchos otros, inclusive el Sistema Operativo de nuestro equipo (Windows) permite trabajar con APIS aunque de una manera un poco más compleja.
Obviamente les adjunto un archivo con el código para que le den un vistazo.
EFASOR-07/2008
Technorati Tags: 