VBA: установить границу для таблицы Powerpoint - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь установить границу для существующей таблицы 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 голосов
/ 28 июня 2018

Создайте одну слайд-презентацию и добавьте в нее только две таблицы. Затем запустите этот код:

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

Это должно работать. Оттуда попробуйте построить немного дальше.

...