Use macros en Excel en Mac para ahorrar tiempo y hacer más
Excel en la Mac no siempre ha sido la misma fuente de poder que en Windows. Las macros realmente no funcionarían a menos que fueran creadas exclusivamente para Mac.
A partir de 2013, Microsoft trajo macros. Hay dos tipos de macros: las que puede crear al registrar rápidamente sus acciones y las que usan VBA para diseñar automatizaciones más avanzadas. Con Office 2016, Excel está utilizando el mismo código base en todas las plataformas. Este cambio facilitará que las macros funcionen en todas las plataformas..
Así que echemos un vistazo a cómo funciona esto actualmente en macOS.
Habilitando Macros en Excel en Mac
Trabajar con macros en Excel en tu Mac puede no estar habilitado por defecto. Esta configuración se debe a que las macros pueden ser un posible vector de malware Cómo protegerse de Microsoft Word Malware Cómo protegerse de Microsoft Word Malware ¿Sabía que su computadora puede estar infectada por documentos malintencionados de Microsoft Office, o que podría ser engañado para habilitar ¿La configuración que necesitan para infectar tu computadora? Lee mas . La forma más fácil de saberlo es ver si tiene la Desarrollador pestaña disponible en la cinta en Excel. Si no lo ves, es fácil de habilitar..
Haga clic en Sobresalir en la barra de menú, y luego seleccione Preferencias en el 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. Por último, haga clic en Salvar y deberías ver la pestaña Desarrollador al final de la Cinta.
Después de crear cada libro con macros, guárdelo en un nuevo formato .xlsm para utilizar 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..
Grabación manual de una macro en Excel en Mac
Aunque puede codificar macros 4 errores que puede evitar al programar macros de Excel con VBA 4 errores que puede evitar al programar macros de Excel con VBA El código simple y las macros son las claves de los superpoderes de Microsoft Excel. Incluso los que no son programadores pueden agregar fácilmente una funcionalidad impresionante a sus hojas de cálculo con los conceptos básicos virtuales para aplicaciones (VBA). ¡Evita estos errores de principiante de programación! Leer más, eso podría no ser 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., Grabar macro. Haga clic en esto y aparecerá un cuadro de diálogo que le permitirá nombrar su macro y establecer un método abreviado de teclado. Puede extender su macro a la Cuaderno de trabajo actual, una Nuevo cuaderno de ejercicios, o en tu Cuaderno de macros personal. El libro de macros personal está en su perfil de usuario y le permite usar sus macros entre sus archivos.
Una vez que registres tus acciones, están disponibles en esta misma pestaña. Al hacer clic en las macros, aparecerán las macros guardadas en su libro de trabajo. Haga clic en el nombre de su macro y haga clic en correr para ejecutar sus acciones grabadas.
Ejemplo 1: Total de ventas diarias y promedio por hora
Para una macro de ejemplo, se ejecutará una hoja de ventas diarias, 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 de una hora. Si trabaja en el comercio minorista u otra posición de ventas, esta es una hoja útil para realizar un seguimiento de los ingresos.
Necesitamos configurar la primera hoja. Usar 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, escriba un desglose de los totales por hora de 8-5. Utilicé tiempo de 24 horas, pero puede usar la notación AM / PM si lo prefiere. Tu hoja debe coincidir con la captura de pantalla de arriba.
Agrega una nueva pestaña y copia tu plantilla en ella. Luego llene sus datos de ventas para el 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 AverageandSum y dejarlo almacenado en Este cuaderno. Puede configurar una tecla de método abreviado 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..
En la parte inferior de los listados por hora entrar Totales diarios. En la celda de al lado, ingresa = SUMA (B2: B10). Luego copia y pega eso en el resto de las columnas. Luego en el encabezado agregar Promedio después de la última columna. Luego, en la siguiente celda, ingresa = Promedio (B2: F2). Luego, pégalo en las celdas del resto de la columna..
Entonces haga clic Para de grabar. Su macro ahora se puede usar en cada nueva hoja que agregue a su libro de trabajo. Una vez que tenga otra hoja de datos, vuelva 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 se pueden sumar. Si realiza las mismas operaciones en datos con formato idéntico, utilice macros grabadas.
Macros 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ás que la macro sobrescribe tus nuevos datos. La forma de solucionar esto es mediante el uso de código para hacer que la macro sea más dinámica utilizando VBA, que es una versión reducida de Visual Basic 4. Grandes sitios web para convertirte en un Visual Basic Guru 4 Grandes sitios web para convertirte en un Visual Basic Guru. Visual Basic? Aquí hay algunos recursos excelentes para comenzar. Lee mas . La implementación se centra en la automatización de Office..
No es tan fácil de aprender como Applescript. Aprenda a automatizar su Mac con AppleScript [Parte 1: Introducción] Aprenda a automatizar su Mac con AppleScript [Parte 1: Introducción] Lea más, pero la automatización de Office se basa completamente en Visual Basic. Así que una vez que trabaje con él aquí, podrá rápidamente cambiarlo 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).
Cuando trabaja 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 bloquea, hay herramientas de depuración para observar el estado de sus variables y datos de hoja.
Office 2016 ahora viene con el editor completo de Visual Basic. Le permite utilizar el navegador de objetos y las herramientas de depuración que solían estar limitadas a la versión de Windows. Puede acceder al buscador de objetos yendo a Ver> Object Browser o simplemente presione Mayús + Comando + B. Luego puede navegar a través de todas las clases, métodos y propiedades disponibles. Fue muy útil para construir el código en la siguiente sección..
Ejemplo 2: Total de ventas diarias 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 profundizar en las pestañas y los menús.
Vuelva a la plantilla en blanco que creó en el último paso. Haga clic en Desarrollador para volver a la pestaña. Una vez que estés en la pestaña, haz clic en Botón. A continuación, haga clic en algún lugar de la hoja de la plantilla para colocar el botón. Aparece el menú de macros, nombre su macro y haga clic en Nuevo.
La ventana de Visual Basic se abrirá; lo verás listado como Módulo 2 en el buscador de proyectos. El panel de código tendrá Sub AverageandSumButton () en la parte superior y unas líneas hacia abajo End Sub. Tu código debe ir entre estos dos, ya que es el principio y el final de tu macro.
Paso 1: Declarar variables
Para comenzar, tendrá que declarar todas sus variables Los fundamentos de la programación de computadoras 101 - Variables y tipos de datos Los fundamentos de la programación de computadoras 101 - Variables y tipos de datos Habiendo introducido y hablado un poco sobre la programación orientada a objetos antes y de dónde viene su nombre, Pensé que es hora de que pasemos por los fundamentos absolutos de la programación de una manera no específica para el lenguaje. Esto ... Leer más. Estos están en el bloque de código a continuación, pero una nota sobre cómo se construyen. Debes 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, necesita usar algunas de las variables de rango de inmediato. Los rangos son objetos que contienen secciones de la hoja de cálculo como direcciones. La variable Todas las celulas se establecerá en todas las celdas activas de la hoja, que incluye las etiquetas de columna y fila. Usted obtiene esto llamando al Hoja activa objeto y luego es Rango utilizado propiedad.
El problema es que no desea que las etiquetas se incluyan en los datos de 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.
Usted llama a esto llamando a su AllCells rango, utilizando su Células clase para obtener esa celda específica utilizando (2,2). Para obtener la última celda en el rango, todavía llamará AllCells. Esta vez usando Células especiales método para obtener la propiedad xlCellTypeLastCell. Puedes ver ambos en el bloque de código de abajo.
Set AllCells = ActiveSheet.UsedRange Set 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 de 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, estaré cubriendo los fundamentos de Funciones, valores de retorno, bucles y condicionales. Asegúrese de haber leído la parte 1 antes de abordar esto, donde expliqué los ... Leer más bucles. Estos bucles atraviesan un objeto para actuar en cada subconjunto de ese objeto. En este caso, estás haciendo dos de ellos, uno para cada fila y otro 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 virtualmente idénticos..
Antes de iniciar el bucle para cada fila, debe establecer la columna de destino donde el bucle 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, vas a iniciar el ciclo usando Para cada. A continuación, 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 solo a cada fila, en lugar de a 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 mediante el uso de subrow.row para obtener la fila en la que está actualmente el bucle. Luego, usas ColumnPlaceHolder para la otra coordenada.
Usas esto para los tres pasos. Lo primero que agregues .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 la adjuntas. .Estilo y establecer que igual a “Moneda”. Este paso coincide con el resto de su hoja. En la última línea, usted anexa .Negrita y establecerlo igual a Cierto. (Tenga en cuenta que no hay citas en torno a 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. Así que cuando trabajas más días u horas, la función crece con tus datos..
ColumnPlaceHolder = AllCells.Columns.Count + 1 por cada subRow In TargetCells.Rows ActiveSheet.Cells (subRow.Row, ColumnPlaceHolder) .Value = WorksheetFunction.Average (subRow) ActiveSheet.Cells (subRow.Row, ColumnPlaceHollder) "ActiveSheet.Cells (subRow.Row, ColumnPlaceHolder) .Font.Bold = True Next subRow RowPlaceHolder = AllCells.Rows.Count + 1 For Each subColumn En TargetCells.Columns. Sum (subColumn) ActiveSheet.Cells (RowPlaceHolder, subColumn.Column) .Style = "Moneda" ActiveSheet.Cells (RowPlaceHolder, subColumn.Column) .Font.Bold = "True" Next SubColumn siguiente
Paso 3: Etiqueta tus resúmenes
A continuación, etiqueta la nueva fila y columna, establece 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 ultima columna. Luego, utilizará el mismo método que el bucle para establecer el valor en “Ventas promedio”. También usarás el mismo .Negrita propiedad para poner en negrita su nueva etiqueta.
Luego inviértalo, configurando sus marcadores de posición en la primera columna y la última fila para agregar “Ventas totales”. Usted quiere negrita esto también.
Ambos pasos están en el bloque de código de abajo. Este es el final de la macro señalada por End Sub. Ahora debería tener la macro completa 5 Recursos para macros de Excel para automatizar sus hojas de cálculo 5 Recursos para macros de Excel para automatizar sus hojas de cálculo ¿Buscar macros de Excel? Aquí hay cinco sitios que tienen lo que estás buscando. Lee más y podrás hacer clic en el botón para ejecutarlo. Puedes pegar todos estos bloques de código en orden en tu hoja de Excel si quieres hacer trampa, pero ¿dónde está la diversión??
ColumnPlaceHolder = AllCells.Columns.Count + 1 RowPlaceHolder = AllCells.Row ActiveSheet.Cells (RowPlaceHolder, ColumnPlaceHolder) .Value = "PVP" .Rep.Re. AllCells.Rows.Count + 1 ActiveSheet.Cells (RowPlaceHolder, ColumnPlaceHolder) .Value = "Ventas totales" ActiveSheet.Cells (RowPlaceHolder, ColumnPlaceHolder) .Font.Bold = True End Sub
¿Qué sigue para las macros en Excel en Mac??
Las macros grabadas son excelentes para usarlas en repeticiones predecibles. Incluso si es algo tan simple como cambiar el tamaño de todas las celdas y los encabezados en negrita, estos pueden ahorrarle tiempo..
Visual Basic abre la puerta para que los usuarios de Mac Excel profundicen en la automatización de Office. Visual Basic tradicionalmente solo estaba disponible en Windows. Permite que sus macros se adapten dinámicamente a los datos, haciéndolos más versátiles. Si tiene la paciencia, esta puede ser la puerta a una programación más avanzada..
Explorar más sobre: Microsoft Excel, programación de Visual Basic.