2009-12-17 5 views
2

J'utilise PowerPoint 2000 qui n'a pas la fonction distribuer uniformément les colonnes de 2003 et plus récentes. Est-ce que quelqu'un sait quel code VBA serait utilisé pour distribuer les colonnes de la table sélectionnée uniformément?Powerpoint VBA - Distribuer les colonnes uniformément

(Je sais comment le faire pour la table WHOLE en trouvant la largeur de la table, en la divisant par le nombre de colonnes, et en ajustant la largeur de chaque colonne à cette largeur divisée. par exemple 5 colonnes dans un tableau à 7 colonnes.)

Répondre

1

Prenez la somme des largeurs des colonnes que vous essayez de distribuer, puis divisez par le nombre de colonnes.

2

Cela fera l'affaire pour vous. Assurez-vous que vous avez sélectionné des colonnes lorsque vous exécutez ceci.

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 
Questions connexes