罗恩经常使用形状(实际上是一个椭圆形)来突出显示工作表中的内容。他添加了形状并为其设置了大小,然后需要将形状颜色更改为红色并删除所有填充颜色,以免掩盖他实际要突出显示的内容。他经常执行这些步骤,并且毫无疑问可以使用宏来加快这一步,但是他不确定该如何去做。

在查看基于宏的解决方案之前,您可能需要考虑一些不需要宏的解决方案。例如,如果创建椭圆(按需要设置格式)然后右键单击它,则可以将其设置为默认形状。将来可以加快形状添加到工作簿中的速度。

如果您有多个形状,每个形状都有不同的大小和颜色,则可能需要将这些形状简单地复制到不同的工作簿中。该工作簿可能是这些形状的“持有人”,因此您可以根据需要将它们复制回其他工作簿。这是建立自己的标准形状图库的好方法,这些图库可以使用多年。

如果您认为宏是最好的处理方式,则使用一个宏添加椭圆形相对容易。这是一个非常简单的示例:

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

这将在工作表中的单个位置插入具有所需颜色,填充和透明度的标准椭圆形。完成后,仍将选择形状,然后可以将椭圆形拖到所需位置,并进行必要的尺寸调整。

如果您希望椭圆形更靠近您想要的位置,则可以使用一种变体,它查看工作表中的活动单元格,并将椭圆形放置在该单元格周围,大小与单元格的高度和宽度相同:

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

请注意,宏的此变体根据ActiveCell对象的位置来确定形状的位置。如果需要,您可以将所有出现的ActiveCell更改为Selection,这将允许椭圆的大小进行调整以包围您的选择,而不仅仅是活动单元。还要注意,应稍微调整left,width和height的值,以使椭圆形更好地适合。您可能需要使用不同的调整值来获得所需的外观。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本提示(4631)适用于Microsoft Excel 2007、2010、2013和2016。