Use macros en Excel en Mac para ahorrar tiempo y hacer más

  • Peter Holmes
  • 0
  • 5055
  • 294
Anuncio

Excel en Mac no siempre ha sido la misma potencia que en Windows. Las macros realmente no funcionarían a menos que fueran creadas exclusivamente para Mac.

A partir de 2013, Microsoft recuperó las macros. Existen dos tipos de macros: las que puede crear registrando rápidamente sus acciones y las que usan VBA para diseñar automatizaciones más avanzadas. Con Office 2016, Excel está utilizando la misma base de código en todas las plataformas. Este cambio facilitará el trabajo de las macros en todas las plataformas..

Así que echemos un vistazo a cómo funciona esto actualmente en macOS.

Habilitar macros en Excel en Mac

Es posible que trabajar con macros en Excel en su Mac no esté habilitado de manera predeterminada. Esta configuración se debe a que las macros pueden ser un posible vector de malware. La forma más fácil de saberlo es ver si tienes Desarrollador pestaña disponible en la cinta de opciones en Excel. Si no lo ve, es sencillo habilitarlo.

Haga clic en Sobresalir en la barra de menú y luego seleccione Preferencias en el menú desplegable En el menú, haga clic en Cinta y barra de herramientas. En la lista de la derecha, Desarrollador debe estar en la parte inferior, haga clic en la casilla de verificación. Finalmente, haga clic Salvar y debería ver que la pestaña Desarrollador aparece al final de la cinta de opciones.

Después de crear cada libro con macros, guárdelo en un nuevo formato .xlsm usar las macros después de volver a abrir el archivo. Si olvida, Excel le recordará cada vez que intente guardar. También deberá habilitar las macros cada vez que abra el archivo.

Grabar manualmente una macro en Excel en Mac

Aunque puede codificar macros, puede que no sea para todos. Si no está listo para comenzar a trabajar con VBA, Excel le permite registrar los pasos para su macro en una hoja existente. Haga clic en la pestaña Desarrollador para ver sus opciones.

Estás buscando la tercera opción en la cinta de opciones, Grabar macro. Haga clic aquí y aparecerá un cuadro de diálogo que le permitirá nombrar su macro y establecer un método abreviado de teclado. Puede ampliar su macro a la Libro de trabajo actual, una Nuevo libro de trabajo, o en tu Libro de trabajo macro personal. El Libro de macros personal está en su perfil de usuario y le permite usar sus macros entre sus archivos.

Una vez que registra sus acciones, están disponibles en esta misma pestaña. Al hacer clic en macros, aparecerán las macros guardadas en su libro. Haga clic en el nombre de su macro y haga clic correr para ejecutar tus acciones grabadas.

Ejemplo 1: Total de ventas diarias y promedio por hora

Para una macro de ejemplo, se ejecutará una hoja de ventas diaria, con las ventas desglosadas por totales por hora. Su macro agregará un total de ventas diarias y luego agregará un promedio en la última columna de cada período por hora. Si trabaja en ventas minoristas u otro puesto de ventas, esta es una hoja útil para realizar un seguimiento de los ingresos.

Necesitamos configurar la primera hoja. El uso de este primer espacio en blanco como plantilla para copiar en una nueva pestaña cada día podría ahorrarle algo de tiempo. En la primera columna / fila ponga Hora / Fecha. En la parte superior, agregue de lunes a viernes.

Luego, en la primera columna, ponga un desglose de los totales por hora de 8-5. Utilicé 24 horas, pero puedes usar la notación AM / PM si lo prefieres. Su hoja debe coincidir con la captura de pantalla anterior.

Agregue una nueva pestaña y copie su plantilla en ella. Luego complete sus datos de ventas del día. (Si no tiene datos para completar esta hoja, puede ingresar = RandBetween (10,1000) en todas las celdas para crear datos ficticios.) A continuación, haga clic en Desarrollador en la cinta.

Luego, haga clic en Grabar macro. En el diálogo ingrese el nombre como Promedio y Suma y dejarlo almacenado en Este libro de trabajo. Puede establecer una tecla de acceso directo si lo desea. Puede ingresar una descripción si necesita más detalles sobre lo que hace la macro. Haga clic en Aceptar para comenzar a configurar la macro.

Al final de los listados por hora ingrese Totales diarios. En la celda al lado, ingrese = SUMA (B2: B10). Luego copie y pegue eso en el resto de las columnas. Luego en el encabezado agregue Promedio después de la última columna. Luego, en la siguiente celda hacia abajo, ingrese = Promedio (B2: F2). Luego, pegue eso en las celdas en el resto de la columna.

Luego haga clic Para de grabar. Su macro ahora puede usar en cada nueva hoja que agregue a su libro. Una vez que tenga otra hoja de datos, regrese a Desarrollador y haga clic Macros. Su macro debe estar resaltada, haga clic en ejecutar para agregar sus sumas y promedios.

Este ejemplo puede ahorrarle un par de pasos, pero para acciones más complejas que pueden sumar. Si realiza las mismas operaciones en datos con formato idéntico, use macros grabadas.

Macros de VBA en Excel en Mac

Las macros grabadas manualmente en Excel ayudan con datos que siempre tienen el mismo tamaño y forma. También es útil si desea realizar acciones en toda la hoja. Puedes usar tu macro para probar el problema.

Agregue otra hora y día a la hoja y ejecute la macro. Verá que la macro sobrescribe sus nuevos datos. La forma de evitar esto es usando código para hacer que la macro sea más dinámica usando VBA, que es una versión reducida de Visual Basic. La implementación se centra en la automatización para Office.

No es tan fácil de aprender como Applescript ¿Qué es AppleScript? Escribir su primer script de automatización de Mac ¿Qué es AppleScript? Escribir su primer script de automatización de Mac AppleScript puede ayudarlo a automatizar tareas repetitivas en su Mac. Aquí hay una descripción general y cómo escribir su primer script AppleScript. , pero la automatización de Office se basa completamente en Visual Basic. Entonces, una vez que trabaje con él aquí, podrá cambiar rápidamente y usarlo en otras aplicaciones de Office. (También puede ser de gran ayuda si está atascado con una PC con Windows en el trabajo).

Al trabajar con VBA en Excel, tiene una ventana separada. La captura de pantalla anterior es nuestra macro grabada tal como aparece en el editor de código. El modo de ventana puede ser útil para jugar con su código mientras aprende. Cuando su macro se cuelga, hay herramientas de depuración para ver el estado de sus variables y datos de hoja.

Office 2016 ahora viene con el editor completo de Visual Basic. Le permite usar el buscador de objetos y las herramientas de depuración que solían estar limitadas a la versión de Windows. Puede acceder al Navegador de objetos yendo a Ver> Navegador de objetos o simplemente presione Mayús + Comando + B. Luego puede examinar todas las clases, métodos y propiedades disponibles. Fue muy útil para construir el código en la siguiente sección.

Ejemplo 2: Ventas diarias totales y promedio por hora con código

Antes de comenzar a codificar su macro, comencemos agregando un botón a la plantilla. Este paso hace que sea mucho más fácil para un usuario novato acceder a su macro. Pueden hacer clic en un botón para llamar a la macro en lugar de buscar en las pestañas y menús.

Vuelva a la hoja de plantilla en blanco que creó en el último paso. Haga clic en Desarrollador para volver a la pestaña. Una vez que esté en la pestaña, haga clic en Botón. Luego, haga clic en algún lugar de la hoja en la plantilla para colocar el botón. Aparece el menú de macros, nombra tu macro y haz clic Nuevo.

La ventana de Visual Basic se abrirá; lo verás listado como Módulo2 en el buscador de proyectos. El panel de código tendrá Sub AverageandSumButton () en la parte superior y unas pocas líneas hacia abajo End Sub. Su código debe ir entre estos dos, ya que es el principio y el final de su macro.

Paso 1: declarar variables

Para comenzar, deberá declarar todas sus variables. Estos se encuentran en el bloque de código a continuación, pero una nota sobre cómo se construyen. Debe declarar todas las variables usando Oscuro antes del nombre, y luego como con el tipo de datos.

Sub AverageandSumButton () Dim RowPlaceHolder As Integer Dim ColumnPlaceHolder As Integer Dim StringHolder As String Dim AllCells As Range Dim TargetCells As Range Dim AverageTarget As Range Dim SumTarget As Range 

Ahora que tiene todas sus variables, debe usar algunas de las variables de rango de inmediato. Los rangos son objetos que contienen secciones de la hoja de trabajo como direcciones. La variable Todas las celdas se establecerá en todas las celdas activas en la hoja, que incluye las etiquetas de columna y fila. Obtienes esto llamando al Hoja activa objeto y luego es Rango utilizado propiedad.

El problema es que no desea que se incluyan las etiquetas en los datos promedio y suma. En su lugar, utilizará un subconjunto del rango AllCells. Esta será la gama TargetCells. Usted declara manualmente su rango. Su dirección de inicio será la celda en la segunda fila en la segunda columna del rango.

Llamas a esto llamando a tu AllCells rango, usando su Células clase para obtener esa celda específica usando (2,2). Para obtener la celda final en el rango, aún deberá llamar AllCells. Esta vez usando SpecialCells método para obtener la propiedad xlCellTypeLastCell. Puedes ver ambos en el bloque de código a continuación.

 Establecer AllCells = ActiveSheet.UsedRange Establecer TargetCells = Range (AllCells.Cells (2, 2), AllCells.SpecialCells (xlCellTypeLastCell)) 

Paso 2: para cada bucle

Las siguientes dos secciones del código son Para cada uno Los fundamentos absolutos de la programación para principiantes (Parte 2) Los fundamentos absolutos de la programación para principiantes (Parte 2) En la parte 2 de nuestra guía absoluta de programación para principiantes, cubriré los conceptos básicos de funciones, valores de retorno, bucles y condicionales. Asegúrate de haber leído la parte 1 antes de abordar esto, donde expliqué los ... bucles. Estos bucles atraviesan un objeto para actuar sobre cada subconjunto de ese objeto. En este caso, está haciendo dos de ellos, uno para cada fila y uno para cada columna. Como son casi exactamente iguales, solo uno de ellos está aquí; pero ambos están en el bloque de código. Los detalles son prácticamente idénticos..

Antes de comenzar el ciclo para cada fila, debe establecer la columna de destino donde el ciclo escribe el promedio de cada fila. Usas el ColumnPlaceHolder variable para establecer este objetivo. Lo pones igual al Contar variable de la Células clase de AllCells. Agregue uno para moverlo a la derecha de sus datos agregando +1.

A continuación, comenzará el ciclo utilizando Para cada. Luego, desea crear una variable para el subconjunto, en este caso, subRow. Después de la En, establecemos el objeto principal que estamos analizando TargetCells. Adjuntar .Filas al final para limitar el bucle a solo cada fila, en lugar de cada celda del rango.

Dentro del bucle, utiliza el método ActiveSheet.Cells para establecer un objetivo específico en la hoja. Las coordenadas se establecen usando subRow.Row para obtener la fila en la que se encuentra el bucle actualmente. Luego, usa ColumnPlaceHolder para la otra coordenada.

Usas esto para los tres pasos. El primero anexas .valor después de los paréntesis y establecer igual a WorksheetFunction.Average (subRow). Esto escribe la fórmula para el promedio de la fila en su celda objetivo. La siguiente línea que anexas .Estilo y establecer eso igual a “Moneda”. Este paso coincide con el resto de su hoja. En la última línea, anexas .Negrita y ponerlo igual a Cierto. (Tenga en cuenta que no hay comillas alrededor de este, ya que es el valor booleano). Esta línea en negrita la fuente para que la información de resumen se destaque del resto de la hoja.

Ambos pasos están en el ejemplo de código a continuación. El segundo bucle intercambia filas por columnas y cambia la fórmula a Suma. El uso de este método vincula sus cálculos al formato de la hoja actual. De lo contrario, está vinculado al tamaño en el momento en que graba la macro. Entonces, cuando trabajas más días u horas, la función crece con tus datos.

 ColumnPlaceHolder = AllCells.Columns.Count + 1 para cada subRow en TargetCells.Rows ActiveSheet.Cells (subRow.Row, ColumnPlaceHolder) .Value = WorksheetFunction.Average (subRow) ActiveSheet.Cells (subRow.Row, ColumnPlaceHleder). "ActiveSheet.Cells (subRow.Row, ColumnPlaceHolder) .Font.Bold = True Next subRow RowPlaceHolder = AllCells.Rows.Count + 1 para cada subColumna en TargetCells.Columns ActiveSheet.Cells (RowPlaceHolder, subColumn.Column) .Value. Sum (subColumn) ActiveSheet.Cells (RowPlaceHolder, subColumn.Column) .Style = "Currency" ActiveSheet.Cells (RowPlaceHolder, subColumn.Column) .Font.Bold = "True" Siguiente subColumna 

Paso 3: etiqueta tus resúmenes

A continuación, etiquete la nueva fila y columna, establezca RowPlaceHolder y ColumnPlaceHolder otra vez. Primer uso AllCells.Row para obtener la primera fila en el rango, y luego AllCells.Column + 1 para obtener la última columna. Luego usará el mismo método que el bucle para establecer el valor en “Ventas promedio”. También usarás lo mismo .Negrita propiedad para poner en negrita tu nueva etiqueta.

Luego inviértalo, estableciendo sus marcadores de posición en la primera columna y la última fila para agregar “Ventas totales”. También quieres resaltar esto.

Ambos pasos están en el bloque de código a continuación. Este es el final de la macro señalada por End Sub. Ahora debería tener la macro completa y poder hacer clic en el botón para ejecutarla. Puede pegar todos estos bloques de código en orden en su hoja de Excel si desea hacer trampa, pero ¿dónde está la diversión en eso??

 ColumnPlaceHolder = AllCells.Columns.Count + 1 RowPlaceHolder = AllCells.Row ActiveSheet.Cells (RowPlaceHolder, ColumnPlaceHolder) .Value = "Promedio de ventas" ActiveSheet.Cells (RowPlaceHolder, ColumnPlaceHolder). AllCells.Rows.Count + 1 ActiveSheet.Cells (RowPlaceHolder, ColumnPlaceHolder) .Value = "Total Sales" ActiveSheet.Cells (RowPlaceHolder, ColumnPlaceHolder) .Font.Bold = True End Sub 

Lo que sigue para las macros en Excel en Mac?

Las macros grabadas son excelentes para usar para una repetición predecible. Incluso si es algo tan simple como cambiar el tamaño de todas las celdas y encabezados en negrita, esto puede ahorrarle tiempo.

Visual Basic abre la puerta para que los usuarios de Mac Excel profundicen en la automatización de Office. Tradicionalmente, Visual Basic solo estaba disponible en Windows. Permite que sus macros se adapten a los datos dinámicamente, haciéndolos más versátiles. Si tiene paciencia, esta puede ser la puerta de entrada a una programación más avanzada.

¿Quieres más trucos de hoja de cálculo para ahorrar tiempo? Aprenda a resaltar datos específicos automáticamente con formato condicional en Excel Formato automático de datos en hojas de cálculo de Excel con formato condicional Formato automático de datos en hojas de cálculo de Excel con formato condicional La función de formato condicional de Excel le permite formatear celdas individuales en una hoja de cálculo de Excel en función de su valor. Le mostramos cómo usar esto para varias tareas cotidianas. y resaltado condicional en Numbers en Mac Cómo usar el formato condicional en Numbers en Mac Cómo usar el formato condicional en Numbers en Mac El formato condicional hace que sus hojas de cálculo se destaquen. Aquí se explica cómo usar el formato condicional en Numbers en Mac. .




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.