Cómo escribir una macro en Excel




Cómo escribir una macro en Excel? Aquí están algunos consejos rápidos:
Excel Macro - Cómo grabar
Excel Macro - Cómo editar
Macro Excel - La mejora de velocidad de código
Macro Excel - Ejemplos

Grabación de una macro en Excel

Cómo grabar una macro en Excel 2007 y Excel 2010

record-a-macro-in-excel-2007

En Excel 2007 (y Excel 2010), la opción del menú "Grabar Marco" se encuentra bajo la opción "Ver" de la cinta. Haga clic en el botón "Macros" hacia en el extremo derecho de la cinta y, a continuación, haga clic en "Grabar macro". Una ventana emergente le pedirá que introduzca los detalles de la macro. Si usted apenas está comenzando a grabar su propia macro, puede simplemente hacer clic en el botón "Aceptar". Después de esto se puede llevar a cabo los pasos que desea como entrar en números, fórmulas, formato de celdas, insertar tablas, etc, etc Una vez que haya terminado usted puede detener la grabación de la macro haciendo clic en la opción "Detener grabación" en el botón "Macro".

stop-recording-a-macro-in-excel-2007

Alternativamente, usted puede comenzar y detener la grabación de una macro en Excel 2010 (y 2007) haciendo clic en el icono situado en la parte inferior izquierda de la ventana de la aplicación, justo al lado de donde se etiqueta como "Listo".

Ahora puede ver la macro que acaba de grabar, haga clic en la opción "Ver Macros" en el botón "Macros". También puede presionar Alt + F8 como la tecla de acceso directo. Usted puede dar un nombre descriptivo a la macro o asignar una tecla de acceso directo para que al pulsar esta combinación de teclas, la macro se iniciará la ejecución.
view-macro-in-excel

Cómo grabar una macro en Excel 2003 (y anteriores)

En Excel 2003 y versiones anteriores, puede grabar una macro haciendo clic en la opción "Herramientas" en la barra de menú y luego hacer clic en "Macro" y luego elegir la opción "Grabar nueva macro". Haga clic en Aceptar en el cuadro emergente que aparece a continuación, llevar a cabo los pasos que desea el registro en la macro. Una vez que haya terminado, puede hacer clic en la opción "Detener grabación" en "Macro" en el menú.

record-a-macro-in-excel-2003-excel-2002-and-earlier

Puede ver la macro que acaba de grabar, haga clic en la opción "Herramientas" en la barra de menú y luego hacer clic en "Macro" y luego elegir la opción "Macros". También puede presionar Alt + F8 como la tecla de acceso directo. Puede grabar un conjunto completo de macros y luego ejecutarlos uno tras otro para conseguir una de las etapas relacionadas con la tarea realizada en una sola vez.

Cómo modificar una macro

¡Felicitaciones! Ahora ha escrito su primera macro. El siguiente paso lógico es revisar el código que se ha generado por la macro. El código generado por la aplicación está en un lenguaje llamado VBA (Visual Basic para Aplicaciones). Para ver el código, tendremos que abrir el Editor de VBA (también conocido como el VBA IDE o VBA Integrated Development Environment). Puede utilizar la tecla Alt + F11 acceso directo para abrir el IDE o simplemente utilizar las siguientes opciones del menú.

Edición de una macro en Excel 2010 y 2007

Usted puede dar vuelta en la pestaña "desarrollador" haciendo clic en el botón de Office situado en la esquina superior izquierda del libro de Excel. Haga clic en el botón "Opciones de Excel" y vuelva a encender "Mostrar ficha Programador en la cinta de" casilla de verificación en la opción de menú "Popular".

vba-editor-excel-2007

vba-ide-editor-excel-option

Una vez hecho esto, ahora puede usar la pestaña de "desarrollador" para acceder al Editor de VBA pulsando el botón de "Visual Basic".
edit-a-macro-in-excel-2007

Edición de una macro en Excel 2003 y versiones anteriores
El editor de Visual Basic se puede acceder usando él atajo de teclas Alt + F11, utilizando el botón Editor de Visual Basic en la barra de herramientas de Visual Basic o eligiendo la opción Editor de Visual Basic en el menú como se muestra a continuación.
edit-a-macro-in-excel
Es posible que desee mantener sólo un libro abierto para evitar la confusión al abrir el editor de VBA.

Una vez que haya abierto el IDE VBA, así es como se vería así.
vba-ide-editor

En este punto, es importante familiarizarse con las distintas ventanas y opciones de menú. En unos pocos minutos en la comprensión de estos potencialmente puede ahorrar un montón de esfuerzo posterior.

Para ver el código de la macro que acaba de grabar, haga clic en el "módulo" en la ventana Explorador de proyectos y haga doble clic en "Module 1". Abriría una ventana como la que se muestra a continuación, con unas pocas líneas de código.

write-a-macro-and-edit-code-in-excel

Este es el punto en el que usted puede comenzar a editar el código que genera la macro mientras estaba grabando en Excel. Por ejemplo, usted tiene que automatizar una tarea en la que una determinada columna se llena con los números a partir de 1 a 10. Se registraron los primeros tres pasos para que usted ahora tiene el código que se pueden introducir los números 1, 2 y 3 en los tres primeros células de esa columna. ¿Le gustaría escribir ahora los siguientes siete pasos.

Si observas el código dado anteriormente, usted habría adivinado que existe una estructura para el código. La primera aplicación se mueve el cursor a la celda mediante una instrucción como Range ("A1"). Seleccione y después de editar su contenido por algo como ActiveCell.FormulaR1C1 = "1". Así que para el resto de pasos, podemos simplemente repetir estos pasos, proporcionando la dirección de la nueva celda y luego en el siguiente paso que proporciona el valor que nos gustaría entrar. Por ejemplo, si usted quería entrar 4 en la celda A4, usted escribiría:

1
2
Range ("A4"). Seleccione
ActiveCell.FormulaR1C1 = "4"

y luego repita el paso para los todos los demás valores que desea introducir.

Una vez que haya terminado de editar, guarde el libro. Puede reproducir este marco pulsando F5 mientras que todavía en el cuerpo principal de la macro o volver al libro de Excel y utilizar el botón "Ejecutar" después de seleccionar la macro que desee de la "Macro" lista de ventanas se muestra arriba.

Por favor tómese unos minutos para leer cuidadosamente a través del código que la macro se ha generado. Si usted es un principiante, a pocos minutos invertidos en la lectura a través del código y obtener extraordinarios resultados y recorrerá un largo camino en el que se familiaricen con los objetos de uso común en VBA. (Por favor, tenga en cuenta que este ejemplo es sólo para ilustración. Hay maneras mejores y más rápidas para lograr los mismos resultados, algunos de los cuales vamos a cubrir en las siguientes secciones.)

La mejora de la velocidad de ejecución de una macro de Excel

Hasta aquí todo bien. Vamos a pasar a aprender algunos trucos que pueden ayudar a acelerar el rendimiento del código de VBA de la macro. Tomemos el ejemplo del fragmento de código se muestra arriba. En un equipo de gama alta el código anterior funcionará probablemente más rápido de lo que usted puede hacer clic en un párpado, pero supongo que tuvimos que correr el mismo código una y otra vez por 50.000 células (o iteraciones). Eso llevará algún tiempo. Si la macro que escribiste se encuentra con cientos de líneas de código, se puede mejorar la velocidad de ejecución mediante la reducción de todos los otros procesos que no son necesarios cuando se ejecuta el código.

El uso de comandos Application.ScreenUpdating

El primer truco es dejar de Excel desde la actualización de la pantalla como se ejecuta el código. Eso ayuda a Excel guardar toda la potencia de procesamiento que ejecuta el código y actualizar la pantalla con el valor nuevo sólo después de que el código ha terminado de ejecutarse. Para lograr esto, se puede escribir una declaración al principio del código para desactivar updation pantalla y vuelva a la derecha de nuevo al final del código.

1
2
3
4
5
6
7
8
9
10
Sub Macro1 ()
Application.ScreenUpdating = False
Range ("A1"). Seleccione
ActiveCell.FormulaR1C1 = "1"
Range ("A2"). Seleccione
ActiveCell.FormulaR1C1 = "2"
Range ("A3"). Seleccione
ActiveCell.FormulaR1C1 = "3"
Application.ScreenUpdating = True
End Sub

El comando Application.ScreenUpdating indica a la aplicación que olvidarse de actualizar la pantalla con resultados en tiempo real desde el código y para refrescar solamente después de que el código se ha ejecutado completamente.

El uso de comandos Application.Calculation

El segundo truco es desactivar el cálculo automático. Me explico. Siempre que un usuario o un proceso actualiza una celda, Excel tiende a volver a calcular todas las células que dependen de esa célula. Así que si por ejemplo, 10.000 células dependen de la célula que el código se va a actualizar, excel recalculará todos ellos antes de que el código se completa ejecución. Ahora bien, si hay un número de tales células, el nuevo cálculo puede producir graves ralentizar la ejecución de código. Para evitar que esto suceda, se puede establecer el parámetro Application.Calculation el manual al comienzo del código y luego a la derecha de nuevo hacia el final del código.

1
2
3
4
5
6
7
8
9
10
11
12
Sub Macro1 ()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Range ("A1"). Seleccione
ActiveCell.FormulaR1C1 = "1"
Range ("A2"). Seleccione
ActiveCell.FormulaR1C1 = "2"
Range ("A3"). Seleccione
ActiveCell.FormulaR1C1 = "3"
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Tenga cuidado para activar esta opción de nuevo al final de lo contrario permanecerá apagada incluso cuando el código se ha ejecutado completamente. Si lo deja apagado en el canto de código, puede cambiarlo a automático mediante el uso de las "Herramientas" -> "Opciones" -> pestaña "Cálculo" en el menú como se muestra a continuación:

manual-calculation-in-vba-excel

Evite Celular y Selección de rango en VBA

Al grabar una macro, normalmente se verá líneas de código como Range ("A1"). Seleccione. En nuestro ejemplo anterior, hemos utilizado este tipo de declaraciones varias veces para seleccionar una celda en particular y luego cambiar su valor. Usted puede evitar hacer esto simplemente asignando un valor a la celda sin seleccionarlo. (La macro registró su movimiento cursores de una célula a otra y por lo tanto inserta estos pasos, sin embargo, no son necesarias cuando se trabaja con código de VBA). Así pues, en este caso, un código mucho más eficiente sería:

1
2
3
4
5
6
7
8
9
10
11
Sub Macro1 ()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Range ("A1"). Valor = 1
Range ("A2"). Valor = 2
Range ("A3"). Valor = 3
Range ("A4"). Valor = 4
Range ("A5"). Valor = 5
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Lo que hemos hecho aquí es simplemente hacer referencia a una celda y luego proporcionar un valor a la misma sin seleccionar nada en absoluto. Esto es mucho más rápido que el anterior.

Cómo escribir bucles en VBA

Puede hacer referencia a algunos de los artículos anteriores se ocupan de esto. Usted puede aprender más acerca de VBA de bucles For aquí. Para el Do While Loop consulte este artículo.

Cómo corregir los errores de ejecución en VBA

Una vez que haya aprendido cómo grabar y editar una macro y adquirir las habilidades para escribir código básico VBA, es importante que usted aprenda acerca de la gestión de errores. El manejo de errores impide que la aplicación falla cuando se produce un evento inesperado. Lea más acerca de la fijación de los errores de ejecución en VBA aquí.

Excel macro - Ejemplos

Aquí hay algunos ejemplos de código VBA que pueden ayudarle a automatizar algunas tareas se repiten con frecuencia.

Excel Macro para insertar una fila

1
2
3
Sub Macro1 ()
Filas (2). EntireRow.Insert 'Insertar una nueva fila encima de la segunda fila
End Sub

Excel Macro para insertar una columna

1
2
3
Sub Macro1 ()
Las columnas (3). EntireColumn.Insert 'Insertar una nueva columna a la izquierda de la tercera COLMUN
End Sub

Excel Macro para insertar una columna

1
2
3
4
5
6
Sub Macro1 ()
'Cambiar el formato de la celda D2 en negrita, subrayado y itallic
Las células (2, 4). Font.Bold = True
Las células (2, 4). Font.Underline = xlUnderlineStyleSingle
Las células (2, 4). Font.Italic = True
End Sub

Excel Macro para recorrer un rango

1
2
3
4
5
6
Sub Macro1 ()
Range(Cells(1, 1), Cells(10, 5)) For Each cel en el radio (Cells (1, 1), Cells (10, 5))
contador = contador + 1
cel.Value = contador
Siguiente cel
End Sub

Aquí hay una macro para quitar los valores de error de un rango en Excel. Puedes probar a jugar con el código.

Ser capaz de escribir una macro en Excel es una de las habilidades más productivas que se puede recoger. Esto le permite automatizar tareas rutinarias y le permite completar mucho más rápido.


Excel Formula, Excel Chart, Excel Macro, Excel VBA, Pivot Table Excel, Excel Dashboard

Qué piensas?


XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> < del datetime = ""> <em> <i> <q cite=""> <strike> <strong>


Comentarios y Trackbacks

  1. vinoth escribió:

    Hola Señor / Señora,

    Necesito codificación cómo copiar un número n de los datos de una hoja a otra hoja

  2. ROSS escribió:

    He aprendido más aquí que en cualquier otro lugar. ¿Podría ayudarme con mi problema me robé el siguiente código de la Internet, pero cuando se inserta una línea copia el color de la línea de arriba abajo pero lo quiero en blanco / blanco.
    Insert_Rows Sub ()
    Dim I As Long
    Application.ScreenUpdating = False
    Para I = Range ("B" y Rows.Count). End (xlUp). Fila a 2 Paso -1
    Si las células (i, "B") vbNullString Y las células (i - 1, "B") vbNullString Entonces
    Si las células (i, "B"). Células (I - 1, "B") Luego Filas (I) se insertan

    End If
    Siguiente I
    Application.ScreenUpdating = True
    End Sub

  3. Shweta escribió:

    Hi ..

    Sólo quiero actualizar el grado del estudiante en el nombre de sus marcas de puntuación .. pediría que por favor me sugieren el Código:

    El Código, que me había escrito:

    Sub Prueba1 ()

    Sheet1.Select

    lrow = Sheet1.Cells (Cells.Rows.Count "a3"). End (xlUp). Fila

    Range ("C3: C" & lrow) Formula = "= SI (B3> 85," "A" ", SI (Y (B370)," "B" ", SI (Y (B365)," "C. "", "" D ""))) "

    End Sub

  4. Shweta escribió:

    Hi ..

    Sólo quiero actualizar el grado del estudiante en el nombre de sus marcas de puntuación .. pediría que por favor me sugieren el Código:

    Sub Prueba1 ()

    Sheet1.Select

    lrow = Sheet1.Cells (Cells.Rows.Count "a3"). End (xlUp). Fila

    Range ("C3: C" & lrow) Formula = "= SI (B3> 85," "A" ", SI (Y (B370)," "B" ", SI (Y (B365)," "C. "", "" D ""))) "

    End Sub

  5. AMJADHKHAN escribió:

    Es muy nice.I quieren cómo escribir códigos vb puros con ejemplos.

  6. google escribió:

    He estado explorando un poco para cualquier artículo de alta calidad
    o entradas de weblog en este tipo de zona. Explorando en Yahoo que en última instancia, tropecé
    con este sitio web. El estudio de esta información así que estoy satisfecho de mostrar que
    tienen una muy buena sensación extraña me encontré con exactamente lo que necesitaba.
    Yo tal mucho seguramente aseguraré de que no dejar de recordar esta página web y
    ofrece una mirada sobre una base constante.

    Echa un vistazo a mi página de inicio - google

  1. Cómo escribir macros en Excel escribió:

    [...] Para el libro de Excel y utilizar el botón "Ejecutar" después de seleccionar la macro que desee de la "Macro" lista de ventanas se muestra arriba. Autor: Andrei Categoría: Uncategorized Deja un comentario o [...]

Suscribir

Manténgase al día con las últimas noticias - derecho enviadas a su buzón
feedburner

Traducir

English flagChinese (Simplified) flagPortuguese flagGerman flagFrench flagSpanish flagJapanese flagArabic flagDutch flagHindi flagPolish flagSwedish flagFilipino flagHebrew flagIndonesian flagUkrainian flagThai flagTurkish flag
software treeemap for excel