Cómo convertir macros de Excel a .Net

Más propietarios de pequeñas empresas de los que podría pensar están creando y escribiendo sus propios programas de software, y muchas veces sus primeros pasos de programación implican el uso de Visual Basic para Aplicaciones o VBA. VBA es el lenguaje de programación utilizado con Microsoft Excel y otras aplicaciones de Office que le permite automatizar casi cualquier tarea en una aplicación de Office. Una vez que los usuarios comprenden la sintaxis de VBA relativamente fácil de usar, muchos pasan a la plataforma de desarrollo de aplicaciones web de Microsoft, .NET. Si tiene macros de Excel que codificó con VBA, encontrará que la sintaxis utilizada tanto en VBA como en .NET es similar. Por lo tanto, no tiene que reinventar la rueda y codificar desde cero el código del módulo .NET para las funciones de Excel que ya ha escrito. Si sigue algunas reglas de codificación simples, convertir su código Excel VBA para usarlo en .NET es relativamente simple.

Exportar código VBA desde Excel

1

Inicie Excel y abra el libro de trabajo que contiene el código de macro que desea convertir a .NET.

2

Presione las teclas "Alt-F11" para iniciar el editor de VBA. Espere unos segundos para que el editor de VBA se abra y cargue todos los módulos de macro para el libro de Excel activo.

3

Busque la carpeta "Módulos" debajo del encabezado VBAProject en el lado izquierdo de la ventana del editor de VBA. Haga doble clic en la carpeta "Módulos" para expandir y mostrar todas las macros en el libro activo. Haga clic y seleccione el nombre del primer módulo de la lista.

4

Haga clic en "Archivo" en la barra de menú y luego haga clic en "Exportar archivo". Introduzca un nombre descriptivo para el código del módulo en el campo "Nombre de archivo". Busque una carpeta conveniente en su PC en la que guardar el archivo del módulo de código macro y haga clic en "Guardar". El editor de VBA guarda el código de macro como un archivo .BAS.

5

Utilice la opción "Exportar archivo" en la barra de menú "Archivo" para exportar todos los demás módulos de macro del libro de Excel que desea convertir a .NET. Primero cierre la ventana del editor de VBA y luego salga de Excel.

Importación y conversión de macros de Excel en .NET

1

Inicie Visual Basic o Visual Basic Express en su computadora. Abra el archivo de proyecto .NET donde desea importar el código de macro de Excel existente.

2

Haga clic en el enlace "Proyecto" en la barra de menú y luego en "Agregar módulo". En el menú deslizable, haga clic en "Existente". Busque la carpeta donde guardó los archivos .BAS que exportó desde Excel. Resalte el primer archivo .BAS en la carpeta y haga clic en abrir. Visual Basic agrega el módulo a la ventana de su proyecto .NET.

3

Haga doble clic en el nombre del módulo de macro de Excel que importó. Cuando abre el código del módulo en la ventana del editor de VB, probablemente haya algunas líneas en el código que contengan texto en rojo. Esto indica que la sintaxis del código utilizada no es compatible con VB o .NET. Estas son las líneas del código que debe cambiar para que el módulo funcione con su aplicación .NET.

4

Agregue una anotación ByRef al principio del código de macro importado justo después de la sintaxis "Sub". Por ejemplo, si importó un módulo de macro llamado OpenPowerPoint, la primera línea de código contiene la sintaxis "Sub OpenPowerPoint ()". Para que el código sea compatible como módulo .NET, vuelva a escribir la sintaxis como "OpenPowerPoint (ByRef x As Integer)".

5

Elimine todas las propiedades predeterminadas de sus referencias. Por ejemplo, en VBA puede escribir código como “a =“ Hola mundo ”” y Excel sabe que la variable “a” se refiere a texto. Sin embargo, en aplicaciones VB o .NET, sus propiedades predeterminadas deben especificar el tipo de propiedad explícitamente. Utilizando el ejemplo "a =" Hola mundo "", debe cambiar la sintaxis a "a.text =" Hola mundo "."

6

Utilice el comando Llamar con sus llamadas de función o método a un objeto externo. Excel VBA le permite llamar a una función o módulo externo con una simple entrada "= NameOfFunctionToCall" en la sintaxis del código. Sin embargo, en las aplicaciones .NET, siempre debe usar el comando "Call NameOfFunctionToCall ()".