下面的代码能够给当前工作表中所选择的单元格区域绘制红色的矩形边框。
首先,选取想要绘制边框的所有单元格区域,可以在选择单元格区域的同时按住Ctrl键,从而选取多个单元格区域。然后,运行下面的代码,VBA会自动给所选单元格区域的周边绘制红色的边框,效果如下图1所示。
图1
代码如下:
Sub addRedRectBox()
Dim redBox As Shape
Dim selectedAreas As Range
Dim i As Integer
Dim tempShape As Shape
'遍历当前工作表中每个所选区域
For Each selectedAreas In Selection.Areas
'创建矩形
Set redBox = ActiveSheet.Shapes.AddShape(msoShapeRectangle, _
selectedAreas.Left, selectedAreas.Top, _
selectedAreas.Width, selectedAreas.Height)
'修改所创建的形状的属性
redBox.Line.ForeColor.RGB = RGB(255, 0, 0)
redBox.Line.Weight = 2
redBox.Fill.Visible = msoFalse
'循环查找唯一的形状名
Do
i = i + 1
Set tempShape = Nothing
On Error Resume Next
Set tempShape = ActiveSheet.Shapes("RedBox_" & i)
On Error GoTo 0
Loop Until tempShape Is Nothing
'重命名形状
redBox.Name = "RedBox_" & i
Next
End Sub
如果要删除刚才绘制的红色矩形框,也可以使用VBA快速完成,代码如下:
Sub deleteRedRectBox()
Dim shp As Shape
'遍历当前工作表中每个形状
For Each shp In ActiveSheet.Shapes
'查找名字以"RedBox_"开始的形状
If Left(shp.Name, 7) = "RedBox_" Then
'删除这个形状
shp.Delete
End If
Next shp
End Sub
可以看到,这种情形使用VBA代码很方便,避免了你选择单元格区域然后进行一系列格式设置的频繁操作。