El código VBA dibuja rectángulos alrededor de las celdas seleccionadas

Índice
  1. Crea los rectángulos
    1. Código VBA:
  2. Eliminar todos los rectángulos
    1. Código VBA:
  3. Conclusión

Al crear informes, a veces es necesario resaltar celdas para llamar la atención sobre ellas. El método más obvio para lograr esto es cambiar el color del borde de una celda; lo hice durante muchos años. Es rápido de aplicar, pero el problema llega cuando llega el momento de eliminar el color, el formato de cada celda debe cambiarse nuevamente en cada cuadro a su estilo original.

Ahí es donde entran en juego las siguientes macros. En lugar de aplicar colores a los bordes de las celdas, dibuja formas rectangulares alrededor de las celdas seleccionadas.

Crea los rectángulos

Primero, seleccione todos los rangos de celdas que desea resaltar. Incluso puedes seleccionar varios rangos al mismo tiempo. Ejecute la macro a continuación. Los rectángulos se dibujarán perfectamente alrededor de las celdas seleccionadas.

Cajas rojas VBA

Código VBA:

Sub addRedBox()Dim redBox As ShapeDim selectedAreas As RangeDim i As IntegerDim tempShape As Shape'Recorre cada área seleccionada en la hoja activa Para cada área seleccionada en Selection.Areas 'Crea un rectángulo Establece redBox = ActiveSheet.Shapes.AddShape(msoShapeRectangle, _ selectedAreas. left, selectedAreas.top, _ selectedAreas.Width, selectedAreas.Height) 'Cambiar atributos de la forma creada redBox.Line.ForeColor.RGB = RGB(255, 0, 0) redBox.Line.Weight = 2 redBox.Fill.Visible = msoFalse 'Bucle para encontrar un nombre de forma único Do i = i + 1 Establezca tempShape = Nada en caso de error Reanudar siguiente Establezca tempShape = ActiveSheet.Shapes("RedBox_" i) En caso de error Ir a 0 Bucle hasta que tempShape no sea nada 'Cambie el nombre de la forma a redBox. Nombre = "RedBox_" iNextEnd Sub

Eliminar todos los rectángulos

Habiendo creado todos los rectángulos en la macro anterior, necesitamos una forma sencilla de eliminar los cuadros.

En el código anterior, se cambió el nombre de cada rectángulo creado para que comenzara con "RedBox_". La siguiente macro recorre todas las formas y elimina solo aquellas que comienzan con "RedBox_".

Código VBA:

Sub eliminarRedBox()Dim shp As Shape'Recorre cada forma en la hoja activaPara cada shp en ActiveSheet.Shapes 'Busca formas con un nombre que comience con "RedBox_" Si left(shp.Name, 7) = "RedBox_" Luego 'Elimina el forma shp.Delete End IfNext shp

Conclusión

El objetivo de estas dos macros es aplicar y eliminar formas rápidamente. Por lo tanto, recomiendo guardar estos códigos en su Macrobook personal e incluirlos en una pestaña personalizada de la cinta, luego estarán disponibles instantáneamente en cualquier momento.


Deja una respuesta

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

Subir

Este sitio web utiliza cookies para mejorar la experiencia del usuario y garantizar un funcionamiento eficiente. Al utilizar nuestro sitio web, aceptas todas las cookies de acuerdo con nuestra política de cookies. Leer mas...