wtfvba
wtfvba

Reputation: 25

How to fit column width in macro?

I wrote a macro which copies table from excel to word. In excel all columns have different width. In Word I want to fit my table to one page - margins in Word are 1.5 cm from left and right. Number of rows in my table changes, number of columns is stable (this is 14). How can I set column width to be equal? I wonder if it's possible to set the same column width regardless of the amount of text in headlines. I create swdth variable which I then divide by 14 (all my columns) and I have my table on one page...

This code doesn't work properly. I have all rows in one page, but columns have different width.

Table.Rows.SetHeight RowHeight:=InchesToPoints(0.17), HeightRule:=wdRowHeightExactly
Table.Rows(1).SetHeight RowHeight:=InchesToPoints(0.59), HeightRule:=wdRowHeightExactly
sWdth = InchesToPoints(6.22)
WordTable.PreferredWidthType = wdPreferredWidthPoints
WordTable.PreferredWidth = sWdth
sWdth = sWdth / 14

Upvotes: 0

Views: 830

Answers (2)

ASH
ASH

Reputation: 20302

I've seen similar questions recently. As always...

#1)  Turn on the Macro Recorder
#2)  Click through the steps you need to perform
#3)  Turn off the Macro Recorder

Hit Alt+F11 and you should see all the code you need to do whatever you want to do. Remember, the Macro Recorder is your friend!

Upvotes: 0

macropod
macropod

Reputation: 13505

Giving all columns the same with is as simple as:

Table.Columns.DistributeWidth

but it's not apparent what this has to do with keeping the table on one page.

Upvotes: 1

Related Questions