Táboa de contidos
Titorial paso a paso para que os principiantes poidan gravar, ver, executar e gardar unha macro. Tamén aprenderás algunhas mecánicas internas de como funcionan as macros en Excel.
As macros son unha boa forma de automatizar tarefas repetitivas en Excel. Se te atopas facendo as mesmas cousas unha e outra vez, grava os teus movementos como unha macro e asígnalle un atallo de teclado. E agora podes facer que todas as accións gravadas se realicen automaticamente, cunha soa tecla!
Como gravar unha macro en Excel
Como outras ferramentas de VBA, as macros de Excel reside na pestana Desenvolvedor , que está oculta por defecto. Entón, o primeiro que cómpre facer é engadir a pestana Programador á cinta de Excel.
Para gravar unha macro en Excel, siga estes pasos:
- No <1 Pestana>Desenvolvedor , no grupo Código , faga clic no botón Grabar macro .
Alternativamente, faga clic no Grabar Botón Macro no lado esquerdo da barra Estado :
Se prefire traballar co teclado en lugar do rato, prema o seguinte secuencia de teclas Alt , L , R (unha a unha, non todas as teclas á vez).
- No cadro de diálogo Grabar macro que aparece, configure os parámetros principais da macro:
- Na Macro nome , introduza o nome da macro. Tenta que sexa significativo e descritivo, para que máis tarde poidas atopar rapidamente a macro na lista.
Enaforrache moito tempo e nervios facendo que a túa curva de aprendizaxe sexa máis suave e as macros máis eficientes.
Usa referencias relativas para a gravación de macros
Por defecto, Excel usa absoluto referenciando para gravar unha macro. Isto significa que o teu código VBA sempre se referirá exactamente ás mesmas celas que seleccionaches, independentemente de onde esteas na folla de traballo ao executar a macro.
Non obstante, é posible cambiar o comportamento predeterminado a referencia relativa . Neste caso, VBA non codificará os enderezos das celas, pero funcionará en relación coa cela activa (actualmente seleccionada).
Para gravar unha macro con referencia relativa, faga clic no botón Usar <8 Botón>Referencias relativas na pestana Desenvolvedor . Para volver á referencia absoluta, fai clic de novo no botón para desactivala.
Por exemplo, se gravas a configuración dunha táboa coa referencia absoluta predeterminada, a túa macro sempre recrea a táboa no mesmo lugar (neste caso, Encabezado en A1, Elemento1 en A2, Elemento2 en A3).
Sub Intervalo de referencia_absoluta()( "A1" ). Seleccione ActiveCell.FormulaR1C1 = Rango "Encabezado" ("A2"). Seleccione ActiveCell.FormulaR1C1 = "Item1" Range( "A3" ). Seleccione ActiveCell.FormulaR1C1 = "Item2" End Sub
Se grava a mesma macro con referencia relativa, a táboa crearase onde coloque o cursor antes de executar a macro ( Encabezado nocela activa, Item1 na cela de abaixo, e así por diante).
Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Encabezado" ActiveCell.Offset(1, 0).Range( "A1" ). Seleccione ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" ). Seleccione ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" ). Seleccione End SubNotas:
- Ao utilizar referencias relativas, asegúrese de seleccionar a cela inicial antes de comezar a gravar unha macro.
- As referencias relativas non funcionan para todo. Algunhas funcións de Excel, p. para converter un intervalo nunha táboa, require referencias absolutas.
Seleccione intervalos mediante atallos de teclado
Cando selecciona unha cela ou un intervalo de celas usando as teclas do rato ou das frechas, Excel escribe os enderezos das celas. En consecuencia, sempre que execute unha macro, as operacións gravadas realizaranse exactamente nas mesmas celas. Se isto non é o que queres, utiliza atallos para seleccionar celas e intervalos.
A modo de exemplo, imos rexistrar unha macro que estableza un formato específico (d-mmm-aa) para as datas na táboa seguinte:
Para iso, grava as seguintes operacións: preme Ctrl + 1 para abrir o diálogo Formatar celas > Data > escolla o formato > OK. Se a súa gravación inclúe seleccionar o intervalo co rato ou coas teclas de frecha, Excel producirá o seguinte código VBA:
Sub Date_Format() Range( "A2:B4" ). SeleccioneSelection.NumberFormat = "d-mmm-yy" End SubA execución da macro anterior seleccionaría o intervalo A2:B4 cada vez. Se engades algunhas filas máis á túa táboa, a macro non as procesará.
Agora, vexamos que pasa cando seleccionas a táboa mediante un atallo.
Posa o cursor na cela superior esquerda do intervalo de destino (A2 neste exemplo), inicie a gravación e prema Ctrl + Maiús + Fin . Como resultado, a primeira liña do código terá o seguinte aspecto:
Range(Selection, ActiveCell.SpecialCells(xlLastCell)). SeleccioneEste código selecciona todas as celas desde a cela activa ata a última cela utilizada, o que significa que todos os datos novos incluiranse na selección automaticamente.
Como alternativa, pode usar as combinacións Ctrl + Maiús + Frechas:
- Ctrl + Maiús + frecha cara abaixo para seleccionar todas as celas usadas á dereita, seguido de
- Ctrl + Maiús + frecha cara abaixo para seleccionar todas as celas usadas cara abaixo.
Isto xerará dúas liñas de código en lugar dunha, pero o resultado será o mesmo: seleccionaranse todas as celas con datos abaixo e á dereita da cela activa:
Intervalo (Selección, Selección. Fin ( xlAdereita)). Seleccione Rango (Selección, Selección. Fin (xlAbaixo)). SeleccioneGrabar unha macro para a selección en lugar de celas específicas
O método anterior (é dicir, seleccionar todas as celas usadas comezando pola cela activa) funciona moi ben para realizar as mesmas operacións en toda a táboa. Nalgunhasen situacións, non obstante, pode querer que a macro procese un determinado intervalo en lugar de toda a táboa.
Para iso, VBA fornece o obxecto Selección que fai referencia ás celas seleccionadas actualmente. . A maioría das cousas que se poden facer cun rango, tamén se poden facer coa selección. Que vantaxe che dá? En moitos casos, non é necesario seleccionar nada durante a gravación; só tes que escribir unha macro para a cela activa. E despois, selecciona o intervalo que desexes, executa a macro e manipulará toda a selección.
Por exemplo, esta macro dunha liña pode dar formato a calquera número de celas seleccionadas como porcentaxes:
Sub Percent_Format () Selection.NumberFormat = "0,00%" End SubPlanifica coidadosamente o que gravas
O gravador de macros de Microsoft Excel captura case toda a túa actividade, incluídos os erros que comete e corrixe. Por exemplo, se preme Ctrl + Z para desfacer algo, tamén se gravará. Finalmente, podes acabar con moito código innecesario. Para evitar isto, edite o código no Editor VB ou deixe de gravar, elimine unha macro deficiente e comece a gravar de novo.
Fai unha copia de seguranza ou garde o libro de traballo antes de executar unha macro
O resultado de Excel as macros non se poden desfacer. Polo tanto, antes da primeira execución dunha macro, ten sentido crear unha copia do libro de traballo ou polo menos gardar o seu traballo actual para evitar cambios inesperados. Se a macro fai algo mal,simplemente pecha o libro de traballo sen gardar.
Mantén as macros gravadas curtas
Ao automatizar unha secuencia de tarefas diferentes, podes ter a tentación de gravalas todas nunha única macro. Hai dúas razóns principais para non facelo. En primeiro lugar, é difícil gravar unha macro longa sen erros. En segundo lugar, as macros grandes son difíciles de comprender, probar e depurar. Polo tanto, é unha boa idea dividir unha macro grande en varias partes. Por exemplo, ao crear unha táboa de resumo a partir de varias fontes, pode usar unha macro para importar información, outra para consolidar datos e unha terceira para formatar a táboa.
Espero que este titorial che dea información. sobre como gravar unha macro en Excel. De todos os xeitos, agradézoche a lectura e espero verte no noso blog a vindeira semana!
nomes de macros, pode usar letras, números e guións baixos; o primeiro carácter debe ser unha letra. Non se permiten espazos, polo que debes manter un nome cunha soa palabra comezando cada parte cunha letra maiúscula (por exemplo, MyFirstMacro ) ou separar palabras con guións baixos (por exemplo, My_First_Macro ). - Na caixa Tecla de atallo , escriba calquera letra para asignar un atallo de teclado á macro (opcional).
Permítense tanto as letras maiúsculas como as minúsculas, pero sería conveniente utilizar combinacións de teclas en maiúsculas ( Ctrl + Maiúsculas + letra ) porque os atallos de macros anulan os atallos predeterminados de Excel mentres o libro de traballo que contén a macro está aberto. Por exemplo, se asigna Ctrl + S a unha macro, perderá a capacidade de gardar os ficheiros de Excel cun atallo. Asignando Ctrl + Maiús + S manterase o atallo estándar para gardar.
- Na lista despregable Gardar macro en , escolla onde quere gardar a macro:
- Caderno de traballo de macro persoal : almacena a macro nun libro de traballo especial chamado Personal.xlsb . Todas as macros almacenadas neste libro de traballo están dispoñibles sempre que use Excel.
- Este libro de traballo (predeterminado): a macro almacenarase no libro de traballo actual e estará dispoñible cando volva abrir o libro de traballo. ou compárteo con outros usuarios.
- Novo libro : crea un novo libro e rexistra a macro nese libro.
- No Descrición , escriba unha breve descrición do que fai a macro (opcional).
Aínda que este campo é opcional, recoméndoche que proporciones sempre unha breve descrición. Cando crees moitas macros diferentes, axudarache a comprender rapidamente o que fai cada macro.
- Fai clic en Aceptar para comezar a gravar a macro.
- Na Macro nome , introduza o nome da macro. Tenta que sexa significativo e descritivo, para que máis tarde poidas atopar rapidamente a macro na lista.
- Realiza as accións que desexes para automatizar (consulta o exemplo de macro de gravación).
- Cando remate, fai clic no botón Deter a gravación da pestana Desenvolvedor :
Ou o botón análogo da barra Estado :
Exemplo de gravación dunha macro en Excel
Para ver como funciona na práctica, imos gravar unha macro que aplique algún formato ás celas seleccionadas. Para iso, faga o seguinte:
- Seleccione unha ou máis celas que desexa dar formato.
- Na pestana Desenvolvedor ou Estado , faga clic en Grabar macro .
- No cadro de diálogo Grabar macro , configure as seguintes opcións:
- Nome a macro Formato_encabezado (porque imos dar formato ás cabeceiras das columnas).
- Sitúe o cursor na caixa Tecla de atallo e prema simultaneamente as teclas Maiús + F. Isto asignará o atallo Ctrl + Maiús + F á macro.
- Escolla almacenar a macro neste libro de traballo.
- Para Descrición , use o seguinte texto explicando o que a macro fai: Fai texto en negra, engade cor de recheo e centra .
- Fai clic en Aceptar para comezar a gravar.
- Formatear as celas preseleccionadas como quere. Para este exemplo, usamos o formato de texto en negra, a cor de recheo azul claro e o aliñamento central.
Consello. Non seleccione ningunha cela despois de comezar a gravar a macro. Isto garantirá que todo o formato se aplique á selección , non a un intervalo específico.
- Fai clic en Deter gravación na pestana Desenvolvedor ou na barra Estado .
Isto é! A túa macro foi gravada. Agora, pode seleccionar calquera intervalo de celas en calquera folla, premer o atallo asignado ( Ctrl + Maiús + F ) e o seu formato personalizado aplicarase inmediatamente ás celas seleccionadas.
Como traballar con macros gravadas en Excel
Pódese acceder a todas as opcións principais que ofrece Excel para as macros a través da caixa de diálogo Macro . Para abrilo, faga clic no botón Macros da pestana Desenvolvedor ou prema o atallo Alt+F8.
No cadro de diálogo que se abre, pode ver unha lista de macros dispoñibles en todos os libros de traballo abertos ou asociadas a un determinado libro e facer uso das seguintes opcións:
- Executar - executa a macro seleccionada .
- Introducir : permítelle depurar e probar a macro no Editor de Visual Basic.
- Editar : abre a macro seleccionada eno Editor de VBA, onde podes ver e editar o código.
- Eliminar : elimina permanentemente a macro seleccionada.
- Opcións : permite cambiar o propiedades da macro como a Atallo tecla asociada e Descrición .
Como ver macros en Excel
O código dunha macro de Excel pódese ver e modificar no Editor de Visual Basic. Para abrir o Editor, preme Alt + F11 ou fai clic no botón Visual Basic da pestana Desenvolvedor .
Se ves o Editor de VB por primeira vez, non se sinta desanimado nin intimidado. Non imos falar da estrutura ou sintaxe da linguaxe VBA. Esta sección só dará unha comprensión básica de como funcionan as macros de Excel e o que fai realmente a gravación dunha macro.
O Editor de VBA ten varias ventás, pero centrarémonos nas dúas principais:
Explorador de proxectos : mostra unha lista de todos os libros de traballo abertos e as súas follas. Ademais, mostra módulos, formularios de usuario e módulos de clase.
Ventana de código : aquí podes ver, editar e escribir código VBA para cada obxecto que se mostra no Explorador de proxectos.
Cando gravamos a macro de mostra, ocorreron as seguintes cousas no backend:
- Un novo módulo ( Model1 ) inserida.
- O código VBA da macro escribiuse na xanela Código.
Para ver o código dun determinadomódulo, prema dúas veces no módulo ( Module1 no noso caso) na xanela do Explorador de proxectos. Normalmente, un código de macro ten estas partes:
Nome da macro
En VBA, calquera macro comeza por Sub seguido do nome da macro e remata con End Sub , onde "Sub" é a abreviatura de Subrutina (tamén chamado Procedemento ). A nosa macro de exemplo chámase Header_Formatting() , polo que o código comeza con esta liña:
Sub Header_Formatting()Se queres cambiar o nome da macro , simplemente elimina o nome actual e escriba un novo directamente na xanela Código.
Comentarios
Non se executan as liñas prefixadas cun apóstrofo (') e mostradas en verde por defecto. Estes son comentarios engadidos con fins informativos. As liñas de comentarios pódense eliminar con seguridade sen afectar á funcionalidade do código.
Normalmente, unha macro gravada ten de 1 a 3 liñas de comentarios: nome da macro (obrigatorio); descrición e atallo (se se especifica antes da gravación).
Código executable
Despois dos comentarios, aparece o código que executa as accións que gravaches. Ás veces, unha macro gravada pode ter moito código superfluo, o que aínda pode ser útil para descubrir como funcionan as cousas con VBA :)
A imaxe de abaixo mostra o que fai cada parte do código da nosa macro:
Como executar unha macro gravada
Ao executar unha macro, dis a Excel que volva ao código VBA gravado e executa oexactamente os mesmos pasos. Hai algunhas formas de executar unha macro gravada en Excel, e aquí están as máis rápidas:
- Se asignaches un atallo de teclado á macro, prema ese atallo .
- Prema Alt + 8 ou faga clic no botón Macros da pestana Desenvolvedor . No cadro de diálogo Macro , seleccione a macro desexada e prema en Executar .
Tamén é posible executar unha macro gravada facendo clic no seu propio botón. Estes son os pasos para crear un: Como crear un botón de macro en Excel.
Como gardar macros en Excel
Se gravou unha macro ou escribiu código VBA manualmente, para gardar a macro , cómpre gardar o libro como macro activada (extensión .xlms). Vexa como:
- No libro de traballo que contén a macro, faga clic no botón Gardar ou prema Ctrl + S .
- No Gardar como caixa de diálogo, escolla Libro de traballo habilitado para macros de Excel (*.xlsm) na lista despregable Gardar como tipo e, a continuación, faga clic en Gardar :
Macros de Excel: que é e que non se rexistra
Como acabas de ver, é bastante sinxelo gravar unha macro en Excel. Pero para crear macros eficaces, cómpre comprender o que está a suceder entre bastidores.
O que se grava
O gravador de macros de Excel captura moitas cousas: case todos os clics do rato e as pulsacións de teclas. Polo tanto, debes pensar nos teus pasos coidadosamente para evitar o exceso de código que poidaproducir un comportamento inesperado da súa macro. A continuación móstranse algúns exemplos do que rexistra Excel:
- Seleccionar celas co rato ou o teclado. Só se rexistra a última selección antes de que se rexistre unha acción. Por exemplo, se selecciona o intervalo A1:A10 e, a continuación, fai clic na cela A11, só se rexistrará a selección de A11.
- O formato da cela como o recheo e a cor da fonte, o aliñamento, os bordos, etc.
- Formato de números como porcentaxe, moeda, etc.
- Edición de fórmulas e valores. Os cambios rexístranse despois de premer Intro .
- Desprazar, mover fiestras de Excel, cambiar a outras follas de traballo e libros de traballo.
- Engadir, nomear, mover e eliminar follas de traballo.
- Crear, abrir e gardar libros de traballo.
- Executar outras macros.
O que non se pode gravar
A pesar de moitas cousas diferentes que pode gravar Excel, certas funcións están fóra das capacidades de o Gravador de macros:
- Personalizacións da cinta de Excel e da barra de ferramentas de acceso rápido.
- Accións dentro dos diálogos de Excel como Formato condicional ou Buscar e substituír (só se rexistra o resultado).
- Interaccións con outros programas. Por exemplo, non pode gravar copiar/pegar dun libro de Excel nun documento de Word.
- Calquera cousa que implique o Editor de VBA. Isto impón as limitacións máis significativas - moitas cousas que se poden facer a nivel de programación non podenser gravado:
- Crear funcións personalizadas
- Mostrar caixas de diálogo personalizadas
- Facer bucles como Para o seguinte , Para cada , Facer mentres , etc.
- Avaliación das condicións. En VBA, pode usar a instrución IF Then Else para probar unha condición e executar algún código se a condición é verdadeira ou outro código se a condición é falsa.
- Executar código baseado en eventos. . Con VBA, pode usar moitos eventos para executar un código asociado a ese evento (como abrir un libro de traballo, recalcular unha folla de traballo, cambiar a selección, etc.).
- Utilizar argumentos. Ao escribir unha macro no Editor de VBA, pode proporcionar argumentos de entrada para que unha macro realice unha determinada tarefa. Unha macro gravada non pode ter ningún argumento porque é independente e non está conectada a ningunha outra macro.
- Entender a lóxica. Por exemplo, se grava unha macro que copia celas específicas, digamos na fila Total , Excel só rexistrará os enderezos das celas copiadas. Con VBA, pode codificar a lóxica, é dicir, copiar os valores na fila Total .
Aínda que as limitacións anteriores establecen moitos límites para as macros gravadas, aínda son un bo punto de partida. Aínda que non teñas idea da linguaxe VBA, podes gravar rapidamente unha macro e despois analizar o seu código.
Consellos útiles para gravar macros en Excel
A continuación atoparás algúns consellos e notas que poden potencialmente