Táboa de contidos
Este titorial permitirache aprender macros de Excel. Atoparás como gravar unha macro e inserir código VBA en Excel, copiar macros dun libro a outro, activalas e desactivalas, ver o código, facer cambios e moito máis.
Para Novas en Excel, o concepto de macros adoita parecer insuperable. De feito, pode levar meses ou incluso anos de adestramento para dominar VBA. Non obstante, isto non significa que non poidas aproveitar o poder de automatización das macros de Excel de inmediato. Aínda que sexas un novato na programación de VBA, podes gravar facilmente unha macro para automatizar algunhas das túas tarefas repetitivas.
Este artigo apunta ao fascinante mundo das macros de Excel. Abarca os conceptos básicos esenciais que debes coñecer para comezar e ofrece ligazóns aos titoriais detallados relacionados.
Que son as macros en Excel?
Macro de Excel é un conxunto de comandos ou instrucións almacenados nun libro de traballo en forma de código VBA. Podes pensar nel como un pequeno programa para realizar unha secuencia predefinida de accións. Unha vez creadas, as macros pódense reutilizar en calquera momento. Ao executar unha macro executa os comandos que contén.
Normalmente, as macros úsanse para automatizar tarefas repetitivas e rutinas diarias. Os desenvolvedores de VBA expertos poden escribir macros moi sofisticadas que van moito máis alá de reducir o número de pulsacións de teclas.
Moitas veces, é posible que escoite a xente referirse a unha "macro".siga estes pasos:
- Abre o libro de traballo no que queres importar macros.
- Abre o Editor de Visual Basic.
- No Explorador de proxectos, fai clic co botón dereito do rato. o nome do proxecto e seleccione Importar ficheiro .
- Navegue ata o ficheiro .bas e prema en Abrir .
Exemplos de macros de Excel
Unha das mellores formas de aprender Excel VBA é explorando mostras de código. A continuación atoparás exemplos de códigos VBA moi sinxelos que automatizan algunhas operacións básicas. Por suposto, estes exemplos non che ensinarán a codificar, para iso existen centos de tutoriais de VBA de grao profesional. Só pretendemos ilustrar algunhas características comúns de VBA que, con sorte, farán que a súa filosofía sexa un pouco máis familiar para vostede.
Mostrar todas as follas dun libro de traballo
Neste exemplo, usamos o ActiveWorkbook para devolver o libro de traballo activo actualmente e o bucle For Each para percorrer todas as follas do libro unha a unha. Para cada folla atopada, establecemos a propiedade Visible en xlSheetVisible .
Sub Unhide_All_Sheets() Dim wks As Worksheet for each wks In ActiveWorkbook.Worksheets wks.Visible = xlSheetVisible Next wks End SubOcultar a folla de traballo activa ou ocultala moi
Para manipular a folla activa actualmente, use o obxecto ActiveSheet . Esta macro de mostra cambia a propiedade Visible da folla activa a xlSheetHidden para ocultala. Parafaga a folla moi oculta, estableza a propiedade Visible en xlSheetVeryHidden .
Sub Hide_Active_Sheet() ActiveSheet.Visible = xlSheetHidden End SubDesagrupar todas as celas combinadas no intervalo seleccionado
Se desexa realizar certas operacións nun intervalo en lugar de toda a folla de traballo, use o obxecto Selección . Por exemplo, o seguinte código unirá todas as celas combinadas dun intervalo seleccionado dunha soa vez.
Sub Unmerge_Cells() Selection.Cells.UnMerge End SubMostrar unha caixa de mensaxes
Para mostrar algunha mensaxe aos seus usuarios, use a función MsgBox . Aquí tes un exemplo de tal macro na súa forma máis sinxela:
Sub Show_Message() MsgBox ( "Ola mundo!" ) End SubNas macros da vida real, adoita utilizarse unha caixa de mensaxes para obter información ou confirmación. Por exemplo, antes de realizar unha acción (desunir celas no noso caso), mostra unha caixa de mensaxe Si/Non . Se o usuario fai clic en "Si", as celas seleccionadas non se combinan.
Sub Unmerge_Selected_Cells() Dim Answer As String Answer = MsgBox( "Estás seguro de que queres desfusionar estas celas?" , vbQuestion + vbYesNo, "Unmerge Cells" ) If Answer = vbYes Then Selection.Cells.UnMerge End If End SubPara probar o código, seleccione un ou máis intervalos que conteñan celas combinadas e execute a macro. Aparecerá a seguinte mensaxe:
Abaixo amósanse as ligazóns a macros máis complexas que automatizan desafíos e tempotarefas consumidas:
- Macro para copiar follas de varios libros nun só
- Macros para duplicar follas en Excel
- Macros para ordenar alfabéticamente pestanas en Excel
- Macro para desprotexer a folla sen contrasinal
- Macro para contar e sumar celas de cores condicionais
- Macro para converter números en palabras
- Macro para ocultar todas as follas de traballo pero a folla activa
- Macros para mostrar follas
- Macro para mostrar todas as columnas
- Macros para ocultar moito as follas
- Macro para eliminar todos os saltos de liña nunha folla activa
- Macros para eliminar filas en branco
- Macro para eliminar todas as outras filas
- Macro para eliminar columnas en branco
- Macro para inserir todas as outras columnas
- Macros para corrector ortográfico en Excel
- Macro para transpoñer columnas a filas
- Macro para cambiar columnas en Excel
- Macros para definir a área de impresión
- Macros para inserir saltos de páxina
Como protexer as macros de Excel
Se queres evitar que outros vexan, modifiquen ou executen a túa macro, pode protexelo con contrasinal.
Bloquear macro para visualización
Para protexer os seus códigos VBA de visualizacións e edicións non autorizadas, faga o seguinte:
- Abra o VBA Editor.
- No Explorador de proxectos, faga clic co botón dereito no proxecto que desexa bloquear e escolla Propiedades do proxecto VBA...
- Na Propiedades do proxecto , na pestana Protección , marque Bloquearproxecto para ver , introduza o contrasinal dúas veces e prema en Aceptar .
- Garde, peche e reabra o seu ficheiro de Excel.
Cando tente ver o código no editor de Visual Basic, aparecerá o seguinte cadro de diálogo. Escribe o contrasinal e fai clic en Aceptar.
Para desbloquear macros , só tes que abrir de novo a caixa de diálogo Propiedades do proxecto e quitar unha marca de verificación. desde a caixa Bloquear proxecto para visualizalo .
Nota. Este método protexe o código da visualización e edición, pero non impide que se execute.
Protexer a macro con contrasinal para evitar que se execute
Para protexer a túa macro para que non se execute de xeito que só os usuarios que coñezan o contrasinal poidan executala, engade o seguinte código, substituíndo a palabra "contrasinal" polo teu contrasinal real :
Sub Password_Protect() Dim contrasinal As Variant password = Application.InputBox( "Introduza o contrasinal", "Macro protexida con contrasinal" ) Seleccione o contrasinal de maiúsculas e minúsculas Case Is = False 'non faga nada Case Is = "contrasinal" 'o seu código aquí Case Else MsgBox "Contrasinal incorrecto" End Select End SubA macro usa a función InputBox para solicitar ao usuario que introduza o contrasinal:
Se a entrada do usuario coincide co contrasinal codificado, o teu código execútase. Se o contrasinal non coincide, móstrase a caixa de mensaxe "Contrasinal incorrecto". Para evitar que o usuario mire o contrasinal no Editor de Visual Basic, lembre de bloquearmacro para ver como se explica anteriormente.
Nota. Dado o número de varios crackers de contrasinais dispoñibles na web, é importante entender que esta protección non é absoluta. Podes consideralo máis ben como unha protección contra o uso accidental.
Consellos sobre macros de Excel
Os profesionais de Excel VBA idearon toneladas de trucos enxeñosos para que as súas macros sexan máis efectivas. A continuación compartirei algúns dos meus favoritos.
Se o teu código VBA manipula activamente o contido da cela, podes acelerar a súa execución desactivando a actualización da pantalla e recalculo de fórmulas. Despois de executar o teu código, activalo de novo.
As seguintes liñas deben engadirse ao principio do teu código (despois das liñas que comezan por Dim ou despois do Sub liña):
Application.ScreenUpdating = False Application.Calculation = xlCalculationManualAs seguintes liñas deben engadirse ao final do seu código (antes de End Sub ):
Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomaticComo dividir o código VBA en varias liñas
Ao escribir código no editor de VBA, ás veces podes crear declaracións moi longas, polo que tes que desprazarte horizontalmente para ver o final da liña. Isto non afecta á execución do código, pero dificulta o seu exame.
Para dividir unha instrución longa en varias liñas, escriba un espazo seguido dun subliñado (_) no punto no que queres romper a liña. En VBA, isto denomínase carácter de continuación de liña .
Para continuar co código na seguinte liña correctamente, siga estas regras:
- Non divide o código no medio dos nomes dos argumentos.
- Non uses guión baixo para romper os comentarios. Para comentarios de varias liñas, escriba un apóstrofo (') ao comezo de cada liña.
- Un guión baixo debe ser o último carácter dunha liña, non seguido de nada máis.
O seguinte exemplo de código amosa como dividir a instrución en dúas liñas:
Resposta = MsgBox( "Estás seguro de que queres desagregar estas celas?" , _ vbQuestion + vbYesNo, "Unmerge Cells")Como facer accesible unha macro desde calquera libro de traballo
Cando escribes ou gravas unha macro en Excel, normalmente só se pode acceder a ela desde ese libro de traballo específico. Se queres reutilizar o mesmo código noutros libros de traballo, gárdao no Caderno de macros persoal. Isto fará que a macro estea dispoñible sempre que abra Excel.
O único obstáculo é que o Caderno de Macro persoal non existe en Excel por defecto. Para crealo, terás que gravar polo menos unha macro. O seguinte titorial ofrece todos os detalles: Libro de traballo de macro persoal en Excel
Como desfacer unha acción de macro
Despois de executar unha macro, a súa acción non se pode reverter premendo Ctrl + Z nin facendo clic no botónBotón Desfacer .
Os programadores VBA experimentados poden, por suposto, validar os valores de entrada e/ou as condicións de inicio antes de permitir que a macro faga cambios nunha folla de traballo, pero na maioría dos casos é así. bastante complicado.
Unha forma máis sinxela é gardar o libro de traballo activo dende o código da macro. Para iso, simplemente engade a seguinte liña antes de deixar que a túa macro faga calquera outra cousa:
ActiveWorkbook.SaveOpcionalmente, tamén podes mostrar unha caixa de mensaxes informando ao usuario de que o libro de traballo actual foi gardado xusto antes de executar o código principal de a macro.
Deste xeito, se vostede (ou os seus usuarios) non está satisfeito cos resultados, pode simplemente pechar o libro de traballo e, a continuación, volver abrir.
Evite que Excel mostre unha advertencia de seguranza cando non hai macros nun libro de traballo
Atopouse algunha vez nunha situación na que Excel pregunta continuamente se queres activar macros mentres sabes que non hai macros neste libro de traballo en particular?
O motivo máis probable é que se engadiu algún código VBA e despois eliminouse, deixando un módulo baleiro, o que activa a alerta de seguranza. Para desfacerse del, só tes que eliminar o módulo, gardar o libro de traballo, pechar e abrir de novo. Se isto non axuda, fai o seguinte:
- Para ThisWorkbook e para cada folla individual, abra a xanela Código, prema Ctrl + A para seleccionar todo o código e eliminalo. (aínda que se vexa a xanela Códigobaleiro).
- Elimine calquera formulario de usuario e módulo de clase que conteña o libro de traballo.
Así crea e utiliza macros VBA en Excel. Grazas por ler e espero verte de novo no noso blog a próxima semana!
como "VBA". Tecnicamente, hai unha distinción: unha macro é unha peza de código mentres que Visual Basic para aplicacións (VBA) é a linguaxe de programación creada por Microsoft para escribir macros.Por que usar macros de Excel?
O obxectivo principal das macros é facer máis traballo en menos tempo. Do mesmo xeito que usas fórmulas para analizar números e manipular cadeas de texto, podes usar macros para realizar tarefas frecuentes automaticamente.
Digamos que debes crear un informe semanal para o teu supervisor. Para iso, importa varios datos de análise dun par ou máis de recursos externos. O problema é que eses datos están desordenados, superfluos ou non teñen o formato que Excel pode entender. Isto significa que cómpre reformatear datas e números, recortar espazos adicionais e eliminar espazos en branco, copiar e pegar información nas columnas adecuadas, construír gráficos para visualizar tendencias e facer moitas máis cousas diferentes para que o seu informe sexa claro e sinxelo. Agora, imaxinar que todas estas operacións pódense realizar ao instante cun clic do rato!
Por suposto, construír unha macro complexa leva tempo. Ás veces, pode levar aínda máis tempo que realizar as mesmas manipulacións manualmente. Pero crear unha macro é unha configuración única. Unha vez escrito, depurado e probado, o código VBA fará o traballo de forma rápida e impecable, minimizando os erros humanos e os custosos erros.
Como crear unha macro en Excel
Hai dúas formas de crearmacros en Excel - mediante o Gravador de macros e o Editor de Visual Basic.
Consello. Dentro de Excel, a maioría das operacións con macros realízanse a través da pestana Desenvolvedor , polo que asegúrate de engadir a pestana Programador á cinta de Excel.
Grabar unha macro
Aínda que non saibas nada sobre programación en xeral e VBA en particular, podes automatizar facilmente parte do teu traballo deixando que Excel rexistre as túas accións como macro. Mentres realizas os pasos, Excel observa e anota os clics e as pulsacións do rato no idioma VBA.
O gravador de macros captura case todo o que fas e produce un código moi detallado (a miúdo redundante). Despois de deter a gravación e gardar a macro, podes ver o seu código no Editor de Visual Basic e facer pequenos cambios. Cando executas a macro, Excel volve ao código VBA gravado e executa exactamente os mesmos movementos.
Para comezar a gravar, fai clic no botón Grabar macro en Desenvolvedor ou a barra Estado .
Para obter información detallada, consulte Como gravar macros en Excel.
Escritura unha macro no Editor de Visual Basic
O Editor de Visual Basic para Aplicacións (VBA) é o lugar onde Microsoft Excel garda o código de todas as macros, tanto rexistradas como escritas manualmente.
No Editor de VBA , non só pode programar unha secuencia de accións, senón que tamén pode crear personalizadofuncións, amosa as túas propias caixas de diálogo, avalía varias condicións e, o máis importante, codifica a lóxica. Por suposto, crear a túa propia macro require algún coñecemento da estrutura e sintaxe da linguaxe VBA, que está fóra do alcance deste tutorial para principiantes. Pero non hai nada que che impida reutilizar o código doutra persoa (por exemplo, o que atopaches no noso blog :) e incluso un novato en Excel VBA non debería ter dificultades con iso!
Primeiro, prema Alt + F11 para abrir o Editor de Visual Basic. E despois, insira o código nestes dous pasos rápidos:
- No Explorador de proxectos da esquerda, faga clic co botón dereito no libro de traballo de destino e, a continuación, faga clic en Inserir > Módulo .
- Na xanela Código da dereita, pega o código VBA.
Cando remate, preme F5 para executar a macro.
Para obter os pasos detallados, consulte Como inserir código VBA en Excel.
Como executar macros en Excel
Hai varias formas de iniciar unha macro en Excel:
- Para executar unha macro desde unha folla de traballo, faga clic no botón Macros da pestana Desenvolvedor ou prema o atallo Alt + F8.
- Para executar unha macro desde o Editor de VBA, prema:
- F5 para executar o código completo.
- F8 para ir a través do código liña por liña. Isto é moi útil para probar e solucionar problemas.
Ademais, pode iniciar unha macro facendo clic nun botón personalizado oupremendo o atallo asignado. Para obter máis información, consulte Como executar macros en Excel.
Como activar macros en Excel
Por motivos de seguridade, todas as macros en Excel están desactivadas de forma predeterminada. Polo tanto, para usar a maxia dos códigos VBA ao seu favor, cómpre saber como activalos.
A forma máis sinxela de activar macros para un libro de traballo específico é facer clic na opción Activar contido botón da barra amarela de advertencia de seguranza que aparece na parte superior da folla cando abre por primeira vez un libro de traballo con macros.
Para obter máis información sobre a seguridade das macros, consulte Como para activar e desactivar macros en Excel.
Como cambiar a configuración de macros
Microsoft Excel determina se permite ou non que se executen códigos VBA nos seus libros de traballo en función da configuración de macro seleccionada no Centro de confianza .
Aquí están os pasos para acceder á configuración da macro de Excel e cambialas se é necesario:
- Vaia á pestana Ficheiro e seleccione Opcións .
- No panel da esquerda, seleccione Centro de confianza e, a continuación, faga clic en Configuración do centro de confianza... .
- No cadro de diálogo Centro de confianza , faga clic en Configuración de macros á esquerda, seleccione a opción desexada e faga clic en Aceptar .
Na seguinte captura de pantalla, está seleccionada a configuración de macro predeterminada:
Para obter máis información, consulte a configuración da macro de Excel explicada.
Como ver, editar e depurar VBAcódigos en Excel
Calquera cambio no código dunha macro, xa sexa xerado automaticamente polo gravador de macros de Excel ou escrito por ti, realízase no Editor de Visual Basic.
Para abrir o VB Editor, preme Alt + F11 ou fai clic no botón Visual Basic da pestana Desenvolvedor .
Para ver e edite o código dunha macro específica, no Explorador de proxectos da esquerda, prema dúas veces no módulo que a contén ou prema co botón dereito no módulo e escolla Ver código . Abre a xanela Código onde podes editar o código.
Para probar e depurar unha macro, utiliza a tecla F8. Isto levarache a través do código de macro liña por liña permitíndoche ver o efecto que cada liña ten na túa folla de traballo. A liña que se está executando actualmente está resaltada en amarelo. Para saír do modo de depuración, faga clic no botón Reiniciar da barra de ferramentas (cadro azul).
Como copiar unha macro noutro libro de traballo
Creaches unha macro nun libro de traballo e agora queres reutilizala tamén noutros ficheiros? Hai dúas formas de copiar unha macro en Excel:
Copiar o módulo que contén unha macro
No caso de que a macro de destino resida nun módulo separado ou todas as macros do módulo sexan útiles para ti , entón ten sentido copiar todo o módulo dun libro de traballo a outro:
- Abre os dous libros de traballo: o que contén a macro e o que queres copiala.
- Abertoo Editor de Visual Basic.
- No panel Explorador de proxectos, busque o módulo que contén a macro e arrástreo ata o libro de traballo de destino.
Na captura de pantalla a continuación, estamos a copiar Módulo1 de Libro1 a Libro2 :
Copiar o código fonte dunha macro
Se o módulo contén moitas macros diferentes mentres só precisa unha, copie só o código desa macro específica. Así é como:
- Abre ambos libros.
- Abre o Editor de Visual Basic.
- No panel Explorador de proxectos, fai dobre clic no módulo que contén a macro que queres Gustaríame copiar para abrir a súa xanela Código.
- Na xanela Código, busque a macro de destino, seleccione o seu código (comezando por Sub e rematando por Final sub >) e prema Ctrl + C para copialo.
- No Explorador de proxectos, busque o libro de destino e, a continuación, insira un novo módulo nel (faga clic co botón dereito no libro e prema en Inserir > Módulo ) ou prema dúas veces nun módulo existente para abrir a súa xanela Código.
- Na xanela Código do módulo de destino, prema Ctrl + V para pegar o código. Se o módulo xa contén algún código, desprácese ata a última liña de código e pegue a macro copiada.
Como eliminar macros en Excel
Se xa non precisas un determinado código VBA, podes eliminalo usando o cadro de diálogo Macro ou o Editor de Visual Basic.
Eliminar unmacro dun libro de traballo
Para eliminar unha macro directamente do seu libro de Excel, siga estes pasos:
- Na pestana Desenvolvedor , na pestana Código , faga clic no botón Macros ou prema o atallo Alt + F8.
- No cadro de diálogo Macro , seleccione a macro que quere eliminar e prema Eliminar .
Consellos:
- Para ver todas as macros de todos os ficheiros abertos, seleccione Todos os libros de traballo abertos da lista despregable Macros en .
- Para poder eliminar unha macro do Libro de traballo de macros persoais, primeiro debes mostrar Personal.xlsb.
Eliminar unha macro a través do Editor de Visual Basic
Unha vantaxe de usar o Editor de VBA é que permite eliminar un módulo completo con todas as macros que contén dunha soa vez. Ademais, o Editor de VBA permite eliminar macros do libro de traballo de macros persoais sen mostralo.
Para eliminar permanentemente un módulo , siga estes pasos:
- No Explorador de proxectos , faga clic co botón dereito no módulo e escolla Eliminar no menú contextual.
- Cando se lle pregunte se desexa exportar o módulo antes de eliminalo, faga clic en Non .
Para eliminar unha macro específica , simplemente elimine o seu código fonte directamente na xanela Código. Ou pode eliminar unha macro usando o menú Ferramentas do Editor VBA:
- No menú Ferramentas , escolla Macros . OAparecerá o cadro de diálogo Macros .
- Na lista despregable Macros En , seleccione o proxecto que contén a macro non desexada.
- Na caixa Nome da macro , seleccione a macro.
- Fai clic no botón Eliminar .
Como gardar macros en Excel
Para gardar unha macro en Excel, xa sexa gravada ou escrita manualmente, só tes que gardar o libro como macro activada (*.xlms). Vexa como:
- No ficheiro que contén a macro, faga clic no botón Gardar ou prema Ctrl + S .
- O Gardar como aparecerá o cadro de diálogo. Escolla Libro de traballo de Excel habilitado para macros (*.xlsm) na lista despregable Gardar como tipo e prema en Gardar :
Como exportar e importar macros en Excel
Se queres compartir os teus códigos VBA con alguén ou movelos a outro ordenador, o xeito máis rápido é exportar o todo o módulo como un ficheiro .bas.
Exportación de macros
Para exportar os seus códigos VBA, isto é o que cómpre facer:
- Abrir o libro de traballo que contén o macros.
- Preme Alt + F11 para abrir o Editor de Visual Basic.
- No Explorador de proxectos, fai clic co botón dereito no Módulo que contén as macros e selecciona Exportar ficheiro .
- Navega ata o cartafol onde queres gardar o ficheiro exportado, ponlle un nome e fai clic en Gardar .
Importar macros
Para importar un ficheiro .bas con códigos VBA ao teu Excel, por favor