我有几个自由形式,可以形成一个小组。现在,我希望根据单元格值更改组中所有自由形状的“形状填充”和“形状轮廓”颜色。我能够使用下面的代码。但是,整个组的外部Shape Outline应始终保持黑色,这与我的代码无关。我在互联网上找到了一些可能会朝这个方向发展的代码,但我不太了解它,因此在我的文件中不起作用(似乎仅适用于矩形形状)。非常感谢您的帮助。
我在互联网上找到了一个宏,但这似乎仅适用于具有以下矩形的组:
到目前为止我得到的代码:
Sub Region_Portugal()
Dim shp As Shape
Dim rg As Range
Dim rg1 As Range
Dim rg2 As Range
Dim rg3 As Range
Set rg = Sheet9.Range("N37")
Set rg1 = Sheet9.Range("I9")
Set rg2 = Sheet9.Range("I10")
Set rg3 = Sheet9.Range("I11")
If rg <= rg1 Then
For Each shp In Sheet7.Shapes.Range(Array("Group 83"))
shp.Fill.ForeColor.RGB = RGB(255, 0, 0)
shp.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(255, 0, 0)
shp.Line.ForeColor.RGB = RGB(255, 0, 0)
Next
ElseIf rg > rg1 And rg <= rg2 Then
For Each shp In Sheet7.Shapes.Range(Array("Group 83"))
shp.Fill.ForeColor.RGB = RGB(255, 165, 0)
shp.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(255, 165, 0)
shp.Line.ForeColor.RGB = RGB(255, 165, 0)
Next
ElseIf rg > rg2 And rg <= rg3 Then
For Each shp In Sheet7.Shapes.Range(Array("Group 83"))
shp.Fill.ForeColor.RGB = RGB(255, 255, 0)
shp.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(255, 255, 0)
shp.Line.ForeColor.RGB = RGB(255, 255, 0)
Next
ElseIf rg > rg3 Then
For Each shp In Sheet7.Shapes.Range(Array("Group 83"))
shp.Fill.ForeColor.RGB = RGB(0, 255, 0)
shp.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0, 255, 0)
shp.Line.ForeColor.RGB = RGB(0, 255, 0)
Next
Else
For Each shp In Sheet7.Shapes.Range(Array("Group 83"))
shp.Fill.ForeColor.RGB = RGB(192, 192, 192)
shp.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(192, 192, 192)
shp.Line.ForeColor.RGB = RGB(192, 192, 192)
Next
End If
End Sub
我在互联网上找到的代码:
Sub AddBorderToGroup()
Dim oShRng As ShapeRange
Dim oSl As Slide
Set oShRng = ActiveWindow.Selection.ShapeRange
Set oSl = oShRng.Parent
With oSl
With .Shapes.AddShape(msoShapeRectangle, _
oShRng.Left, oShRng.Top, oShRng.Width, oShRng.Height)
.Fill.Visible = False
.Line.Visible = True
.Line.Weight = 2 ' points
' etc for other line properties
End With
End With
End Sub
最终结果将是一张伊比利亚半岛地图,其中西班牙和葡萄牙的不同区域根据单元格值而具有不同的颜色。我用作模板的地图由每个项目的自由格式组成。因此,我需要将不同的省区分开来扩大区域。这些区域应该有一个黑色的边界,以便在有多个相邻区域具有相同颜色的情况下可以区分它们。