VBA-PowerPoint文本/字体阴影通过宏

时间:2017-05-24 09:54:28

标签: vba powerpoint powerpoint-vba

我正在尝试使用阴影效果在图表的数据标签中创建文本(您在PowerPoint菜单顶部显示的阴影效果),但我无法使其正常工作,dataLabels.shadowdataLabels.font.shadow使框架遮蔽,而不是文本。

我在google搜索了很多,我发现这可以通过TextFormatTextFormat2属性实现,遗憾的是我无论如何都无法访问数据标签中的文本。我当前的代码,评论后的行不起作用:

For Each Shape In Slide.Shapes
    If Shape.HasChart Then

        Dim i As Integer
        Dim v As Variant

        Set pts = Shape.Chart.SeriesCollection(1).Points

        For Each s In Shape.Chart.SeriesCollection
            v = s.Values
            If s.Name <> "XXX_XXX" Then
                If v(pts.Count) >= 0.05 Then
                    s.Select
                    s.Points(pts.Count).Select
                    s.Points(pts.Count).ApplyDataLabels
                    s.DataLabels.Font.Color = s.Border.Color
                    s.DataLabels.Font.Size = 20
                    s.DataLabels.Font.Name = "Calibri"
                    's.DataLabels.Shadow = True 
                    's.DataLabels.Font.Shadow = msoTrue 
                    's.Points(pts.Count).DataLabel.Font.Shadow = msoTrue
                    's.Points(pts.Count).DataLabel(pts.Count).TextFrame.TextRange.Font.Shadow = msoTrue                                                   
                End If
            End If
        Next s
    End If
Next Shape

1 个答案:

答案 0 :(得分:0)

如果有人遇到simillar病例,我找到了答案:)

数据标签文本/值的阴影(像阴影一样)是通过TextRange2属性完成的,但我遗漏了Format。像这样:

Dim tr As TextRange2 
Set tr = s.DataLabels(pts.Count).Format.TextFrame2.TextRange
With tr.Font.Shadow
  .OffsetX = 10
  .OffsetY = 10
  .Size = 1
  .Blur = 4
  .Transparency = 0.5
  .Visible = True
End With