2009-12-17 7 views
2

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

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

ответ

1

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

2

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

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 
Смежные вопросы