En esta guía, se enumeran los problemas comunes que puedes encontrar cuando conviertes código de Visual Basic para aplicaciones (VBA) a Apps Script con Macro Converter.
Imprimir archivos
Las APIs de VBA que imprimen archivos se convierten automáticamente a Apps Script, pero pueden comportarse de manera diferente a la API de VBA original. En la siguiente tabla, se muestran dos ejemplos:
| API de VBA | Comportamiento en Apps Script |
|---|---|
PrintOut | Se convierte a Apps Script, pero la API de Apps Script imprime en un archivo en lugar de una impresora. Imprime el archivo PDF de forma manual. |
PrintToFile | Se convierte a Apps Script. El archivo PDF se guarda en tu carpeta Mi unidad. |
Elementos no convertidos
Macro Converter no convierte las siguientes funciones, por lo que debes hacerlo de forma manual:
- Algunos tipos de activadores
- Userforms
- Tipos no admitidos de rangos con nombre
Activadores
Macro Converter no convierte dos tipos de activadores: las combinaciones de teclas y algunos activadores basados en eventos. En muchos casos, puedes crear estos activadores de forma manual.
Combinaciones de teclas
Para agregar combinaciones de teclas, sigue los pasos para importar funciones como macros.
Activadores basados en eventos
Algunos eventos del código de VBA, como BeforeClose o BeforeSave, no tienen equivalentes en Apps Script, pero es posible que puedas crear una solución alternativa.
Para eventos como BeforeClose, puedes crear un menú o botón personalizado para hacer clic y realizar la acción que debe ocurrir antes de cerrar la hoja de cálculo.
No es posible crear soluciones alternativas para el evento BeforeSave, ya que Hojas de cálculo de Google guarda automáticamente los cambios a medida que los realizas.
Userforms
En VBA, un UserForm es una ventana o un diálogo en la interfaz de usuario (IU) de una aplicación. Macro Converter no convierte UserForms. Crealos de forma manual en Apps Script.
Crea un diálogo de formulario de usuario
- En tu computadora, abre el archivo convertido en Hojas de cálculo.
- En la parte superior, haz clic en Extensiones > ** Apps Script**.
- A la izquierda del editor, junto a "Archivos", haz clic en Agregar un archivo > HTML. Te recomendamos que le des al archivo HTML el mismo nombre que el UserForm de VBA original.
- Agrega los campos y la información que quieres que aparezcan en el formulario. Obtén más información sobre los formularios HTML en W3school.com.
- A la izquierda, haz clic en el archivo de Apps Script (archivo GS) que tiene el código convertido.
- Si ya tienes un activador
onOpenen tu código, actualízalo con el siguiente código. Si no tienes el activadoronOpenen tu código, agrega el siguiente código.function onOpen() { SpreadsheetApp.getUi() .createMenu('User Form') .addItem('Show Form', 'showForm') .addToUi(); } function showForm() { var html = HtmlService.createHtmlOutputFromFile('userform_module_name') .setWidth(100) .setTitle('Sign-up for Email Updates'); SpreadsheetApp.getUi().showSidebar(html); }
- Reemplaza
userform_module_namepor el nombre del archivo HTML que agregaste. - En la parte superior, haz clic en Guardar proyecto .
- Cambia a la Hoja de cálculo de Google y vuelve a cargar la página.
- En la parte superior de la Hoja de cálculo de Google, haz clic en Formulario de usuario > Mostrar formulario.
Rangos con nombre
En Excel, los rangos con nombre son nombres que se asignan a una sola celda o a un rango de celdas.
Cuando conviertes archivos de Excel a Hojas de cálculo, no se convierten ciertos tipos de rangos con nombre porque no son compatibles. En la siguiente tabla, se muestran ejemplos comunes:
| Rangos con nombre no admitidos | Descripción |
|---|---|
| Tablas | No admitido en Hojas de cálculo, pero tiene una solución alternativa.
Para volver a crear este rango con nombre en Hojas de cálculo, agrega un rango con nombre que apunte a la notación A1 del rango de la tabla. Usa el mismo nombre que el rango con nombre original en tu código de VBA para que el código convertido lo reconozca. |
| Lista de rangos | No es compatible con Hojas de cálculo. No hay una solución alternativa. |
Artículos relacionados
- Descripción general del complemento de Macro Converter de Google Workspace
- Determina si las macros de VBA son compatibles
- Convierte macros de VBA a Apps Script
- Corrige errores en el código convertido
- Mira los instructivos de Macro Converter
- Lista de APIs de VBA compatibles