Adición y formato de una forma mediante macro (Microsoft Excel)
Ron a menudo usa Formas (un óvalo, en realidad) para resaltar cosas en una hoja de trabajo. Agrega y dimensiona la forma, luego necesita cambiar el color de la forma a rojo y eliminar cualquier color de relleno para que no oscurezca lo que realmente está tratando de resaltar. Realiza estos pasos con bastante frecuencia y no tiene ninguna duda de que esto podría acelerarse de alguna manera con una macro, pero no está seguro de cómo hacerlo.
Antes de buscar soluciones basadas en macros, es posible que desee considerar algunas que no requieran macros. Por ejemplo, si crea su óvalo (con el formato deseado) y luego hace clic con el botón derecho en él, puede establecerlo como su forma predeterminada. Esto puede acelerar la adición de la forma a su libro de trabajo en el futuro.
Si tiene varias formas, cada una de un tamaño y color diferente, es posible que desee simplemente copiar esas formas en un libro de trabajo diferente. Ese libro de trabajo podría ser un «soporte» para esas formas, de modo que pueda volver a copiarlas en otros libros de trabajo, según sea necesario. Esta es una excelente manera de crear su propia galería de formas estándar que se puede utilizar durante años.
Si decide que una macro es la mejor manera de hacerlo, entonces es relativamente fácil usar una para agregar el óvalo. Aquí hay uno muy simple:
Sub Custom_Oval1() ActiveSheet.Shapes.AddShape(msoShapeOval, 150, 150, _ 120, 60).Select Selection.ShapeRange.Fill.Visible = msoFalse With Selection.ShapeRange.Line .DashStyle = msoLineSolid .Weight = 3 .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .Transparency = 0 End With End Sub
Esto inserta un óvalo estándar, con el color, el relleno y la transparencia deseados, en una única ubicación en la hoja de trabajo. Cuando termine, la forma aún está seleccionada y luego puede arrastrar el óvalo a donde desee y hacer los ajustes de tamaño que sean necesarios.
Si prefiere tener el óvalo más cerca de donde desea, puede usar una variación que observe la celda activa en la hoja de trabajo y coloque el óvalo alrededor de esa celda, con el tamaño de la altura y el ancho de la celda:
Sub Custom_Oval2() Dim lLeft As Long Dim lTop As Long Dim lWidth As Long Dim lHeight As Long lLeft = ActiveCell.Left - 5 lWidth = ActiveCell.Width + 5 lTop = ActiveCell.Top lHeight = ActiveCell.Height + 5 ActiveSheet.Shapes.AddShape(msoShapeOval, lLeft, _ lTop, lWidth, lHeight).Select Selection.ShapeRange.Fill.Visible = msoFalse With Selection.ShapeRange.Line .DashStyle = msoLineSolid .Weight = 3 .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .Transparency = 0 End With End Sub
Tenga en cuenta que esta variación de la macro determina la ubicación de la forma en función de la ubicación del objeto ActiveCell. Si lo desea, puede cambiar todas las apariciones de ActiveCell a Selección, lo que permitiría que el tamaño del óvalo se ajustara para rodear su selección en lugar de simplemente la celda activa. Tenga en cuenta también que los valores izquierdo, ancho y alto se ajustan ligeramente para que el óvalo encaje mejor. Es posible que desee jugar con diferentes valores de ajuste para obtener el aspecto que desea.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (4631) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.