Powerpoint VBA - равномерно распределяет столбцы - PullRequest
2 голосов
/ 17 декабря 2009

Я использую PowerPoint 2000, у которого нет функции равномерного распределения столбцов, как у 2003 и более новых. Кто-нибудь знает, какой код VBA будет использоваться для равномерного распределения выбранных столбцов таблицы?

(Я знаю, как сделать это для ВСЕЙ таблицы, найдя ширину таблицы, разделив ее на число столбцов и отрегулировав ширину каждого столбца в соответствии с этой разделенной шириной. Однако у меня возникают проблемы с применением ее только к выбору Например, 5 столбцов справа в таблице из 7 столбцов.)

Ответы [ 2 ]

2 голосов
/ 18 декабря 2009

Это поможет вам. Просто убедитесь, что у вас выбраны столбцы при запуске этого.

Sub DistributeSelectedColumnsEvenly()
Dim sel As Selection
Set sel = ActiveWindow.Selection
Dim fColumn As Integer
fColumn = 0
Dim lColumn As Integer
Dim columnsWidth As Integer

With sel
    If .Type = ppSelectionShapes Then
        If .ShapeRange.Type = msoTable Then
            Dim tbl As Table
            Set tbl = .ShapeRange.Table
            Dim tblColumnCount As Integer
            tblColumnCount = tbl.Columns.Count
            For colNum = 1 To tblColumnCount
                If tbl.Cell(1, colNum).Selected Then
                columnsWidth = columnsWidth + tbl.Cell(1, colNum).Parent.Columns(colNum).Width
                    If fColumn = 0 Then
                        fColumn = colNum
                    End If
                    lColumn = colNum
                End If
            Next
            Dim columnCount As Integer
            columnCount = (lColumn - fColumn) + 1
            Dim columnWidth As Integer
            columnWidth = columnsWidth / columnCount
            For columnIndex = fColumn To lColumn
                tbl.Columns(columnIndex).Width = columnWidth
            Next
        End If
    End If
End With
End Sub
1 голос
/ 17 декабря 2009

Возьмите сумму ширин столбцов, которые вы пытаетесь распределить, затем разделите на количество столбцов.

...