El código VBA dibuja rectángulos alrededor de las celdas seleccionadas
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.
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