去除所有线条的阴影
Remove a shadow from all lines
我刚刚继承了一个绘制组织结构图的 Excel 应用程序。每个形状由 Line
连接
但是,我需要去除添加每条线时绘制的阴影。我如何获得 Lines
的集合,以便我可以做类似
的事情
Line.Shadow.Transparency = 1.0
我有点 vba 新手:-)
这应该可以解决问题 - 它遍历所有形状,检查它们是否是一条线,然后移除阴影。
Sub test()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim shapeObj
For Each shapeObj In ActiveSheet.Shapes
If shapeObj.Type = 9 Then
Dim objName$
objName = shapeObj.Name
ws.Shapes.Range(Array(objName)).Shadow.Visible = msoFalse
End If
Next shapeObj
End Sub
编辑:原来,根据 OP,形状是分组的,所以他用这个来得到它:
Sub RemoveLineShadows()
For Each Shp In ORG.Shapes
If Shp.Type = msoGroup Then
For X = 1 To Shp.GroupItems.Count
If Shp.GroupItems(X).Type = msoLine Then
Shp.GroupItems(X).Shadow.Transparency = 1
End If
Next X
End If
Next Shp
End Sub
Sub qqq()
Dim x As Shape
For Each x In ActiveSheet.Shapes
x.Shadow.Visible = msoFalse
Next
End Sub
我刚刚继承了一个绘制组织结构图的 Excel 应用程序。每个形状由 Line
但是,我需要去除添加每条线时绘制的阴影。我如何获得 Lines
的集合,以便我可以做类似
Line.Shadow.Transparency = 1.0
我有点 vba 新手:-)
这应该可以解决问题 - 它遍历所有形状,检查它们是否是一条线,然后移除阴影。
Sub test()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim shapeObj
For Each shapeObj In ActiveSheet.Shapes
If shapeObj.Type = 9 Then
Dim objName$
objName = shapeObj.Name
ws.Shapes.Range(Array(objName)).Shadow.Visible = msoFalse
End If
Next shapeObj
End Sub
编辑:原来,根据 OP,形状是分组的,所以他用这个来得到它:
Sub RemoveLineShadows()
For Each Shp In ORG.Shapes
If Shp.Type = msoGroup Then
For X = 1 To Shp.GroupItems.Count
If Shp.GroupItems(X).Type = msoLine Then
Shp.GroupItems(X).Shadow.Transparency = 1
End If
Next X
End If
Next Shp
End Sub
Sub qqq()
Dim x As Shape
For Each x In ActiveSheet.Shapes
x.Shadow.Visible = msoFalse
Next
End Sub