从 Excel - 2013 年开始在 PowerPoint 中设置 Table 样式

Format Table Style in PowerPoint from Excel - 2013

我有以下代码块循环遍历工作簿中的 table 名称数组。它是来自调用过程(回调)的 ParamArray。它复制每个 table 并将其粘贴到 ppt 幻灯片中。然后它创建一个文本框,这是 table 的标题。我使用目标样式(我认为这是默认样式)粘贴它,因为我想使用 ppt 样式。我从 Excel 粘贴的 object 是 table。如何在粘贴后更改 table 的样式并将第一行设为粗体?更改 PowerPoint Table 样式似乎没有很好的记录。我尝试了下面的评论部分,但没有用。谢谢!

For i = LBound(vObjects(0)) To UBound(vObjects(0))
        Set practice = ActiveWorkbook.Worksheets(Range("T_" & vObjects(0)(i)).Parent.Name).ListObjects("T_" & vObjects(0)(i))
        practice.Range.Copy
        PPT_Slide.Shapes.Paste 'Special DataType:=ppPasteOLEObject, Link:=msoTrue
        Set PPT_Shape = PPT_Slide.Shapes(PPT_Slide.Shapes.Count)
        PPT_Shape.Name = "OBJ_" & vObjects(0)(i)
'        With PPT_Shape
'            .ApplyStyle "{C083E6E3-FA7D-4D7B-A595-EF9225AFEA82}", True
'            .Rows(1).Font.Bold = True
'        End With
        Set objPPT_MilestoneTextbox = PPT_Slide.Shapes.AddTextbox(1, Left:=320, Top:=HorizontalTop, Width:=300, Height:=50).TextFrame.TextRange
        With objPPT_MilestoneTextbox
            .Text = vObjects(0)(i)
            .Font.Size = 14
            .Font.Bold = True
            .ParagraphFormat.Alignment = 2
        End With
        Set PPT_Shape = PPT_Slide.Shapes(PPT_Slide.Shapes.Count)
        PPT_Shape.Name = "CAP_" & vObjects(0)(i)
    Next i
    Application.CutCopyMode = False

此 MS 页面记录了 PPT 2010 的 table 样式 ID(并指出它们可能与后续版本不同):

https://code.msdn.microsoft.com/office/PowerPoint-2010-Interact-ea2fbe1b

但是您需要将样式应用于形状的 .Table 对象,而不是形状本身。尝试像这样修改您的代码:

Dim otbl As Table
Set PPT_Shape = PPT_Slide.Shapes(PPT_Slide.Shapes.Count)
Set otbl = PPT_Shape.Table
With otbl
    .ApplyStyle "{C083E6E3-FA7D-4D7B-A595-EF9225AFEA82}", True
End With