Al finalizar este tutorial para la creación de un gestor de macros para CATIA V5, habremos creado un formulario, que podrá ser lanzado desde cualquier módulo de CATIA, para acceder a todas aquellas utilidades que hayamos programado (o conseguido que nos programen) de una forma rápida y fácil.
Aunque está realizado para el entorno de CATIA, la programación está hecha en VBA por lo que puede servir para cualquier aplicación de Office de igual forma.
Este tutorial, lo publiqué ya hace unos años (en 2.014 nada menos, creo recordar…) en el foro de la web de Fernando Torrecilla, autor de, entre otros, El gran libro de CATIA y ahora lo he rescatado, tras revisar alguna documentación que tenía por ahí, de la que ya, ni me acordaba.
Como me ha parecido interesante, he decidido publicarlo aquí de nuevo confiando en que sea de utilidad.
Seguimos con la parte III del tutorial que espero te esté resultando interesante.
Rutinas de ejemplo
Para seguir con el proceso de creación de un gestor de macros para CATIA V5, antes de pasar a programar el funcionamiento del UserForm que va a servir de “lanzadera” de nuestras macros, vamos a crear un par de ellas sencillas para tener contenido que cargar.
Rutina1: Versión de CATIA
La primera es una rutina muy sencilla y, supongo, poco útil, ya que entiendo que sabes con que versión de CATIA trabajas…
Lo primero que haremos será insertar un nuevo módulo y en su propiedad Name, escribir Mod_VersionCATIA. Suele ser bueno dar nombre a los módulos, para luego saber que hay en ellos.
Una vez creado el módulo, copiamos este código:
Sub VersionCatia()
MsgBox "Tu configuración de CATIA es: V" & CATIA.SystemConfiguration.Version & _
"R" & CATIA.SystemConfiguration.Release & _
"(SP" & CATIA.SystemConfiguration.ServicePack & ")"
End Sub
Como vemos, la rutina se llama VersionCatia, que es el nombre que tendremos que usar para después llamarla. Su funionamiento es simple: toma del objeto CATIA.SystemConfiguration los valores de sus propiedades Version, Release y ServicePack y los muestra en un cuadro de mensaje.
Rutina2: Saludos a todos!!!
Esta rutina es igual de sencilla, y mostrará un mensaje de saludo. Es aún más inútil que la primera, aunque siempre se puede reprogramar para que nos lance un mensaje de ánimo cuando estemos atascados. El código es como sigue:
Sub Saludos()
Msgbox “Saludos a todos!!!”,vbOkOnly,”HOLA”
End sub
Podemos copiarla en el módulo anterior o, mejor, insertar un nuevo módulo, por separar rutinas independientes, llamándolo de una forma que nos indique su contenido.
Programación de eventos del UserForm
Evento Initialize
Ya tenemos nuestro UserForm creado, solo que, de momento, no hace nada. Toca ahora decirle qué hacer y usaremos las dos rutinas sencillas de antes para cargarlas en el mismo y lanzar su ejecución.
El primer evento a programar es el de inicialización del UserForm. Este evento es el que se ejecuta para todo UF cuando es llamado sin estar previamente cargado y su ejecución se produce antes de ser visualizado. Aquí es donde se pueden inicializar valores para ser mostrados, el estado inicial de los controles, mensajes de texto, …
Para poder cargar el UF, hacemos doble click sobre él en el árbol de proyectos de forma que en la ventana de edición veamos el diseño del mismo. Tendremos algo así:

Y para poder acceder a la programación del mismo, haremos doble click sobre una zona del UF que no tenga ningún control (si hacemos doble click sobre algún control, entraremos en la programación de los eventos de dicho control).
El evento de inicialización del UF tiene que:
- Limpiar el control ListBoxMacros. Debería estar limpio, pero no está de más asegurarse
- Cargar la lista de macros a las que tendremos acceso en el control ListBoxMacros
- Deshabilitar el funcionamiento del botón de ejecutar macro ya que inicializáremos el UF sin seleccionar ninguna
El código necesario es el siguiente:
Private Sub UserForm_Initialize()
UF_MisMacros.ListBoxMacros.Clear
UF_MisMacros.Ejecutar.Enabled = False
UF_MisMacros.ListBoxMacros.AddItem ("Versión CATIA")
UF_MisMacros.ListBoxMacros.AddItem ("Saludos")
End Sub
Si ahora lanzásemos la ejecución de lo que tenemos hasta el momento, cosa que se puede hacer desde el módulo Mod_MisMacros, poniéndonos dentro del código y pulsando F5, veríamos lo siguiente (he movido el UF cerca del compás para que veamos que se ha mostrado en la ventana de CATIA):

Llegados a este punto, te dejo trabajar en lo visto y que dediques algo de tiempo a jugar y aplicar tus propias ideas. En breve seguirá la parte IV del tutorial.
Si quieres ver otras partes de este tutorial para la creación de un gestor de macros para CATIA V5, aquí tienes los enlaces: Parte II / Parte IV