¿cómo utilizar vba anidada con la declaración?

Puntos clave

  • Utilice la instrucción VBA With para minimizar el código.
  • Puede usar solo un objeto a la vez cuando usa la declaración With.

¿Qué es VBA con declaración?

VBA With es una declaración para especificar un objeto una vez y luego ejecutar varias declaraciones para él. En palabras simples, use la declaración «CON» para especificar un objeto y luego podrá acceder a todas las propiedades y métodos de una sola vez. Comienza con «Con» y termina con «Terminar con».

Sintaxis de VBA con declaración

Aquí está la sintaxis que necesita usar para usar la instrucción With en VBA:

 With [OBJECT] [Statement] End With
sintaxis-vba-con-declaración
  1. With : esta es la palabra clave inicial de la declaración que le dice a VBA que está especificando el objeto mencionado.
  2. Objeto : aquí debe especificar el objeto que desea utilizar.
  3. Declaración : una o más declaraciones que desea ejecutar con el objeto especificado.
  4. Terminar con : esta es la palabra clave final de la declaración.

Ejemplo para entender VBA con declaración

Tomemos un ejemplo para entenderlo con la declaración en profundidad. Supongamos que desea cambiar el color, el tamaño y el nombre de la fuente de la celda A1. Para hacer estas tres cosas necesitas acceder a tres propiedades de fuente VBA diferentes y el código sería:

 Range("A1").Font.Color = RGB(0, 0, 255) Range("A1").Font.Size = 16 Range("A1").Font.Name = "Consolas"

Pero aquí usaremos la declaración With en lugar del código anterior. Para utilizar la declaración VBA With, puede seguir los siguientes pasos:

  1. Primero escribe el teclado “Con”.
  2. Después de eso, use el rango de VBA para especificar la celda A1 usando el objeto de fuente para especificar el objeto de fuente.
    use-the-vba-range
  3. A continuación, deberás ingresar el código de las tres propiedades y los valores que deseas aplicar.
    code-for-all-three-properties
  4. Al final, utilice la palabra clave «Terminar con» para finalizar la declaración.
    end-with-to-end-the-statement

Aquí está el código que acaba de escribir.

 Sub MyMacro() With Range("A1").Font .Color = RGB(0, 0, 255) .Size = 16 .Name = "Consolas" End With End Sub

Ahora veamos ambos códigos y tratemos de entender cuál es la diferencia que tenemos al usar la declaración «Con».

mira-los-dos-códigos

En el primer código, usó el objeto de fuente tres veces y luego usó la propiedad a la que desea acceder y en la que desea realizar cambios.

Pero en el segundo código, usó la declaración With e inmediatamente especificó el objeto de fuente. Y luego tres líneas de código en la declaración «Con» para acceder a las tres propiedades.

Cuando usa la declaración «With» y especifica un objeto, le dice a VBA que todas las declaraciones que ha escrito deben ejecutarse con el objeto mencionado. Esto no sólo le brinda código estructurado, sino que también acelera la ejecución de una macro y le otorga mayor eficiencia.

Anidado con declaración

Te dije al principio que solo puedes especificar un objeto para usar la declaración With. Pero hay una manera de utilizar más de uno o incluso varios elementos con él. Esto está usando VBA LOOPS , y usaremos FOR EACH LOOP para recorrer múltiples objetos y usar «Con».

Dejame darte un ejemplo; debe revisar todas las hojas de trabajo y aplicar todo lo siguiente a todas las celdas de cada hoja de trabajo.

  • Tamaño de fuente: 16
  • Fuente: Verdena

Y en el libro de trabajo, tiene cinco hojas de trabajo, como en el siguiente ejemplo:

anidado con declaración

Utilice los siguientes pasos para escribir una declaración «Con» anidada.

  1. Primero, debes declarar una variable para usar un objeto de hoja de trabajo.
    steps-to-write-nested
  2. Después de eso, como dije, debes usar For Each Loop . Por lo tanto, debe escribir un código con el bucle que pueda recorrer todas las hojas de trabajo .
    write-code-with-the-loop
  3. Ahora ingrese la instrucción with que puede aplicar la configuración de fuente que discutimos anteriormente. Para hacer referencia a todas las celdas de la hoja de trabajo, puede utilizar «Celdas» mientras especifica el asunto.
    use-cells-while-specifing-the-object

Aquí está el código completo que acaba de escribir.

 Sub MyMacro() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets With Cells .Font.Size = 16 .Font.Name = "Verdena" End With Next ws End Sub

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *