Vba 删除所有线的阴影

Vba 删除所有线的阴影,vba,excel,line,Vba,Excel,Line,我刚刚继承了一个Excel应用程序,它可以绘制组织结构图。每个形状由一条线连接 但是,我需要删除添加每条线时绘制的阴影。如何获取行的集合,以便执行以下操作 Line.Shadow.Transparency = 1.0 我有点vba新手:-)这应该可以做到-它会在所有形状中循环,检查它们是否是直线,然后移除阴影 Sub test() Dim ws As Worksheet Set ws = ActiveSheet Dim shapeObj For Each shapeObj In Activ

我刚刚继承了一个Excel应用程序,它可以绘制组织结构图。每个形状由一条
线连接

但是,我需要删除添加每条线时绘制的阴影。如何获取
行的集合
,以便执行以下操作

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
编辑:结果是,每一个操作,形状都是分组的,所以他用这个来得到它:

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

一个好的起点是在Excel中将其记录为宏,然后检查代码并相应地应用。我可以记录一个仅选择所有行的宏吗?1。遍历所有形状,2。测试形状是否为直线,3。做代码,4。循环。您可以应用于组织结构图的SmartArt样式中是否有无阴影的线条?我使用的是Excel 2016 for Windows,所有样式的线条上都没有阴影,因此我怀疑您使用的是Mac Excel,默认情况下,它在所有图表上都包含阴影。我也会使用
Line.Shadow.Visible=False
,而不是混淆透明度。我不确定这将如何格式化,但结果是所有形状都被分组了,所以我采用了这个方法。谢谢你的指点。非常感谢。Sub RemoveLineShadows()用于组织形状中的每个Shp,如果Shp.Type=msoGroup,则用于X=1到Shp.GroupItems.Count,如果Shp.GroupItems(X).Type=msoLine,则用于Shp.GroupItems(X).Shadow.Transparency=1#如果下一个X,则结束如果下一个Shp结束Sub
Sub qqq()
Dim x As Shape
    For Each x In ActiveSheet.Shapes
        x.Shadow.Visible = msoFalse
    Next
End Sub