I already answered somewhere, could not find this link. Here's the code you need, just make sure you have the selected columns that you want to distribute evenly
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
source share