Cómo escribir una macro en Excel




Tumblr StumbleUpon Reddit LinkedIn AIM Digg Evernote WhatsApp MySpace Kindle es

Cómo escribir una macro en Excel? Aquí hay algunos consejos rápidos:
Excel Macro - Cómo grabar
Excel Macro - Cómo editar
Excel Macro - Mejorar la velocidad de código
Excel Macro - 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" está en la "Vista" de la cinta. Haga clic en el botón "Macros" hacia el extremo derecho de la cinta y, a continuación, haga clic en "Grabar macro". Un cuadro 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 "ok". Después de esto se puede llevar a cabo los pasos que desea como de ingresar 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 "Ready".

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 antes)

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 de pop-up 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 después ejecutarlos uno tras otro para conseguir una de las etapas relacionadas con la tarea realizada en una sola vez.

Cómo editar una macro

¡Enhorabuena! 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 IDE VBA o Entorno de desarrollo integrado VBA). Usted puede utilizar el atajo de teclado Alt + F11 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" casilla de verificación en la opción de menú "populares".

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 "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 el atajo Alt él tecla + 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.
vba-ide-editor

En este punto, es importante familiarizarse con las diferentes ventanas y opciones de menú. Unos minutos pasaron en la comprensión de estos potencialmente puede ahorrar un montón de esfuerzo después.

Para ver el código de la macro que acaba de grabar, haga clic en el "Módulo" en la ventana de explorador de proyectos y haga doble clic en "Module1". Se 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 que ha grabado los tres primeros pasos para que usted ahora tiene el código que puede entrar en los números 1, 2 y 3 en los tres primeros células de esa columna. Usted ahora gustaría escribir los siguientes siete pasos.

Si observas el código dado anteriormente, usted habría adivinado que hay una estructura para el código. La primera aplicación se mueve el cursor a la celda utilizando 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, a continuación, en el siguiente paso de proporcionar 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 repita el paso para los todos los otros valores que le gustaría entrar.

Una vez que termine 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 con 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 de los códigos y obtener extraordinarios resultados y va a recorrer un largo camino en el que se familiaricen con los objetos de uso común en VBA. (Por favor tener en cuenta que este ejemplo es sólo para ilustración. Hay maneras mejores y más rápidas de lograr los mismos resultados, algunos de los cuales vamos a cubrir en las siguientes secciones.)

La mejora de la velocidad de ejecución de un Macro Excel

Hasta aquí todo bien. Vamos a pasar a aprender algunos trucos que pueden ayudar a acelerar el rendimiento del código VBA de su 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 tomaría 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 todo el poder 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 convertirla de vuelta en 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 la actualización de la pantalla con los resultados en tiempo real de 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 apagar los cálculos automáticos. Me explico. Cada vez 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 celda que su código se va a actualizar, excel recalculará todos ellos antes de completado el código de 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 principio 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 ha ejecutado completamente. Si lo deja apagado withing el código, puede cambiarlo a automático mediante el uso de la opción "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, se le suele ver las 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 grabada su movimiento de los cursores de una célula a otra y por lo tanto insertada estos pasos, sin embargo no son necesarios cuando se trabaja con código 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 dar un valor a la misma sin seleccionarlo 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 Para Loop 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 la aplicación de estrellarse 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 ayudar 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)) Para cada cel En Range (Cells (1, 1), Cells (10, 5))
contador = contador + 1
cel.Value = contador
Siguiente cel
End Sub

He aquí una macro para eliminar los valores de error de un rango en Excel. Usted puede tratar de 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. Se le permite automatizar tareas rutinarias y le permite completar mucho más rápido.

Tumblr StumbleUpon Reddit LinkedIn AIM Digg Evernote WhatsApp MySpace Kindle es

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

Qué piensas?


XHTML: Puedes usar las siguientes etiquetas: del <a <abbr 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 de cómo copiar un número n de datos de una hoja a otra hoja

  2. ROSS escribió:

    Aprendí más aquí que en cualquier otro lugar. ¿Podría usted 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 hacia 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) .Row Para 2 Paso -1
    Si Células (I, "B") vbNullString Y Células (I - 1, "B") vbNullString Entonces
    Si Células (I, "B") Cells (I - 1, "B") Luego Filas (I) .insert

    End If
    Siguiente I
    Application.ScreenUpdating = True
    End Sub

  3. Shweta escribió:

    Hola ..

    Sólo quiero actualizar el grado del estudiante en el nombre de su puntuación Marks .. 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"). Fin (xlUp) .Row

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

    End Sub

  4. Shweta escribió:

    Hola ..

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

    Sub Prueba1 ()

    Sheet1.Select

    lRow = Sheet1.Cells (Cells.Rows.Count, "a3"). Fin (xlUp) .Row

    Range ("C3: C" y 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.

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

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

Suscribirse

Manténgase al día con las últimas noticias - directamente en su bandeja de entrada
feedburner

Traducir

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