Cómo escribir una macro en Excel




Tumblr StumbleUpon Reddit LinkedIn AIM Digg Evernote WhatsApp MySpace Se Kindle

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 de menú "Record Marco" está bajo la "Vista" de la cinta. Haga clic en el botón "Macros" hacia el extremo derecho de la cinta y haga clic en "Grabar macro". Una ventana emergente le pedirá que introduzca los detalles de la macro. Si usted está recién empezando 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 desee como 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 "Listo".

Ahora puede ver la macro que acaba de grabar, haga clic en la opción "Ver Macros" bajo el botón "Macros". También puede presionar Alt + F8 como la tecla de acceso directo. Usted puede dar un nombre descriptivo para 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 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 ejecutar una tras otra para conseguir una de las etapas relacionadas con una tarea realizada en una sola vez.

Cómo editar una macro

¡Enhorabuena! Ahora ha escrito su primera macro. El siguiente paso lógico es de 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). 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 luego girar en "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 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 mediante é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 confusiones 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 del 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, hay que automatizar una tarea en la que una determinada columna se llena con los números a partir de 1 a 10. Se registran los tres primeros pasos por lo que 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 se miraba en el código proporcionado anteriormente, usted habría adivinado que existe una estructura al código. La primera aplicación se mueve el cursor a la celda mediante el uso de 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 repita estos pasos, proporcionando la dirección de la nueva celda y luego en la siguiente etapa 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"). Select
ActiveCell.FormulaR1C1 = "4"

y luego repita el paso para los todos los otros valores que le gustaría entrar.

Una vez que haya terminado de editar, guardar 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 usar 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 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, tenga en cuenta que este ejemplo es sólo para ilustración. Hay formas mejores y más rápidas de lograr los mismos resultados, algunos de los cuales vamos a cubrir en las siguientes secciones.)

Mejorar la velocidad para la ejecución de una macro de Excel

Hasta ahora, todo bien. Vamos a pasar a aprender algunos trucos que pueden ayudar a acelerar el rendimiento de 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 probablemente correr más rápido 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, 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.

Mediante el comando 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 valor dulce solamente 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"). Select
ActiveCell.FormulaR1C1 = "1"
Range ("A2"). Select
ActiveCell.FormulaR1C1 = "2"
Range ("A3"). Select
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 actualizar sólo después de que el código se ha ejecutado completamente.

Mediante el comando Application.Calculation

El segundo truco es apagar cálculos automáticos. Me explico. Cada vez que un usuario o un proceso actualiza una célula, 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 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 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"). Select
ActiveCell.FormulaR1C1 = "1"
Range ("A2"). Select
ActiveCell.FormulaR1C1 = "2"
Range ("A3"). Select
ActiveCell.FormulaR1C1 = "3"
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Tenga cuidado al 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 en el canto de código, se puede cambiar 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, se le suele ver las líneas de código como Range ("A1"). Select. En nuestro ejemplo anterior, hemos utilizado estas declaraciones varias veces para seleccionar una celda en particular y luego cambiar su valor. Puede evitar hacer esto simplemente asignando un valor a la celda sin seleccionarlo. (La macro grabada su movimiento 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"). Value = 1
Range ("A2"). Value = 2
Range ("A3"). Value = 3
Range ("A4"). Value = 4
Range ("A5"). Value = 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 seleccionar 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 a 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), células (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 Se Kindle

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

Qué piensas?


XHTML: Puedes usar las siguientes etiquetas: <a href="" title=""> <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 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 de copia el color de la línea por encima de abajo, pero lo quiero en blanco / blanco.
    Insert_Rows Sub ()
    Dim I como de largo
    Application.ScreenUpdating = False
    Para I = Range ("B" & Rows.Count) .End (xlUp) .Row Para 2 Paso -1
    Si las células (I, "B") vbNullString Y Células (I - 1, "B") vbNullString Entonces
    Si las células (I, "B") Células (I - 1, "B") Entonces 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 de Marcas .. pediría que por favor me sugieren el Código:

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

    Sub Test1 ()

    Sheet1.Select

    lrow = Sheet1.Cells (Cells.Rows.Count "a3"). End (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 de Marcas .. pediría que por favor me sugieren el Código:

    Sub Test1 ()

    Sheet1.Select

    lrow = Sheet1.Cells (Cells.Rows.Count "a3"). End (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 escribir codificaciones vb puros con ejemplos.

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

    [...] Para el libro de Excel y usar 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 [...]

Suscribir

Manténgase al día con las últimas noticias - Entregado a 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