VBA con / Fin con declaración

Este artículo demostrará cómo usar With y End With en VBA

Excel nos brinda la oportunidad de aprender VBA grabando macros. Estas macros registran literalmente todo lo que hacemos en la pantalla y convierten las acciones en código VBA. Luego podemos analizar este código y aprender de él.

Cuando grabamos una macro en VBA, lo que es más significativo cuando cambiamos el formato de las celdas, la macro a menudo utilizará la sintaxis With … End With en su grabación. Comprender qué significan y para qué se utilizan es una parte importante de VBA.

Grabar una macro

Para grabar una macro en Excel, en el Cinta, Seleccione Ver> Macro> Grabar macro.

O

Desarrollador> Grabar macro

Nota: Si no ve la cinta de desarrollador, deberá habilitarla. Haga clic AQUÍ para aprender cómo hacer esto.

Escriba el nombre de la macro y haga clic en Aceptar.

Resalte algunas celdas y luego formatéelas para Negrita, cambie el color a rojo y modifique el tamaño de la fuente. Luego haga clic en Detener en la esquina inferior izquierda de la pantalla para detener la grabación de la macro.

CON Sintaxis de instrucción

Para ver / editar su macro grabada: En la cinta, seleccione Ver> Macros> Ver macros. Seleccione la macro que acaba de grabar y luego haga clic en Editar.

O

En la cinta, seleccione Desarrollador> Visual Basic para cambiar a la ventana VBE.

La macro grabada puede parecerse al ejemplo siguiente

123456789 Sub WithMacro ()Rango ("A2: C10"). SeleccionarSelection.Font.Bold = TrueSelection.Font.Size = 12Con Selection.Font.Color = -16776961.TintAndShade = 0Terminar conEnd Sub

En primer lugar, hemos seleccionado el rango A2: C10.

Luego, establecemos el negrita en verdadero y el tamaño de fuente en 12. Tenga en cuenta que el código "Selection.Font" se repite para estas líneas.

Luego, la macro nos ha grabado cambiando el color del texto; tenga en cuenta que esta vez, la fuente Selection.Font tiene una CON delante, y las 2 propiedades que se están modificando (el color y la tinta y la tonalidad) tienen un punto (.) delante. A continuación, el área de código se completa con un TERMINAR CON.

Para simplificar este código, podemos mover el Negrita y el Tamaño para que estén dentro de la instrucción WITH y, por lo tanto, eliminar la necesidad de repetir la palabra Selección.

123456789 Sub WithMacro ()Rango ("A2: C10"). SeleccionarCon Selection.Font.Negrita = Verdadero.Tamaño = 12.Color = -16776961.TintAndShade = 0Terminar conEnd Sub

La sintaxis de una instrucción WITH… END WITH es, por lo tanto, muy simple:

123 CON Objeto'propiedades para formatear / cambiarTERMINAR CON

Podríamos haber modificado el código de otra manera:

1234567 Sub RemoveWith ()Rango ("A2: C10"). SeleccionarSelection.Font.Bold = TrueSelection.Font.Size = 12Selection.Font.Color = -16776961Selection.Font.TintAndShade = 0End Sub

En el ejemplo anterior, hemos agregado las palabras Selection.Font a cada línea del código. Por lo tanto, nos hemos referido repetidamente al objeto Selection.Font en el código.

Sin embargo, usar la instrucción WITH significa que solo necesitamos referirnos a este Objeto una vez en el código. Es una forma más limpia de codificar: le dice a VBA que comience en CON y que termine en END WITH; el código a ejecutar está encerrado dentro de esas 2 palabras. Hace que la macro se ejecute más rápido y de manera más eficiente (especialmente para macros más largas) y agrega estructura a su código.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave