VBA:设置Powerpoint表的边框

时间:2018-06-28 07:33:55

标签: vba excel-vba powerpoint powerpoint-vba excel

我尝试为现有的Powerpoint表设置边框。它运行得很好(并且行和列号作为测试数据插入到每个单元格中),但是没有出现边框。我究竟做错了什么?

For i = 1 To myPresentation.Slides(w).Shapes(tableName).Table.Rows.Count
    For j = 1 To myPresentation.Slides(w).Shapes(tableName).Table.Columns.Count
        myPresentation.Slides(w).Shapes(tableName).Table.Cell(i, j).Shape.TextFrame.TextRange.Text = "R:" & i & " C:" & j
         With myPresentation.Slides(w).Shapes(tableName).Table.Cell(i, j)
            .Borders(ppBorderTop).DashStyle = msoLineSolid
            .Borders(ppBorderBottom).DashStyle = msoLineSolid
            .Borders(ppBorderLeft).DashStyle = msoLineSolid
            .Borders(ppBorderRight).DashStyle = msoLineSolid
            .Borders(ppBorderTop).ForeColor.RGB = RGB(255, 110, 0)
            .Borders(ppBorderBottom).ForeColor.RGB = RGB(255, 110, 0)
            .Borders(ppBorderLeft).ForeColor.RGB = RGB(255, 110, 0)
            .Borders(ppBorderRight).ForeColor.RGB = RGB(255, 110, 0)
            .Borders(ppBorderBottom).Weight = 1
            .Borders(ppBorderTop).Weight = 1
            .Borders(ppBorderLeft).Weight = 1
            .Borders(ppBorderRight).Weight = 1
            .Borders(ppBorderBottom).Visible = msoTrue
            .Borders(ppBorderTop).Visible = msoTrue
            .Borders(ppBorderLeft).Visible = msoTrue
            .Borders(ppBorderRight).Visible = msoTrue
        End With
    Next j
Next i   

1 个答案:

答案 0 :(得分:0)

创建一个幻灯片演示文稿,并仅在其中添加两个表格。然后运行以下代码:

Public Sub TestMe()

    Dim myTable As Table
    Dim sh As Shape

    For Each sh In ActivePresentation.Slides(1).Shapes
        Set myTable = sh.Table
        myTable.Cell(1, 1).Borders(ppBorderTop).ForeColor.RGB = RGB(255, 110, 0)
    Next sh

End Sub

应该可以。 从那里尝试进一步构建。