how do i select and format all tables in a document at once

J

j smith

i have a huge document (several hundred pages) with hundreds of tables
exported from a statistical analysis program (SPSS). specifically, i want to
make each table "autofit to contents", because this will reduce the size of
my output by a large amount. i can't seem to find a way to select all tables
at once; thus i cannot autofit all tables to contents at once.

thanks
 
D

Doug Robbins - Word MVP

Try running the following macro:

Dim atable As Table
For Each atable In ActiveDocument.Tables
atable.AutoFitBehavior wdAutoFitContent
Next atable


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 
J

j smith

i can't make it work using this macro. i pasted it into a vb editor window
so it reads like the following:


Sub spss()
Dim atable As Table
For Each atable In ActiveDocument.Tables
atable.AutoFitBehavior wdAutoFitContent
Next atable
End Sub

then i ran it from within word (version 2003).
nothing happened. am i doing it correectly?

many thanks
 
D

Doug Robbins - Word MVP

More likely that

AutoFitBehavior wdAutoFitContent

is not what you are trying to do.

Try recording a macro of your taking the action one time and modify the code
that I gave you so that it incorporates the relevant part of the code that
is generated by the macro recorder.

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 
K

Klaus Linke

Also, if you have a long document with lots of tables, it may take quite a
while, up to minutes, for the tables to adjust to the new setting (which is
done in a background task).
You may be able to force that adjustment with a "ActiveDocument.Repaginate"
in your macro.

I sometimes first use AutoFit to Content, then to Window, and finally to
Fixed (so Word doesn't continually spend ressources in the background).
For that to work, I had to stick in an "ActiveDocument.Repaginate" after
each changing of the AutoFitBehaviour.

Regards,
Klaus
 
K

Klaus Linke

I sometimes first use AutoFit to Content, then to Window, and finally to
Fixed (so Word doesn't continually spend ressources in the background).
For that to work, I had to stick in an "ActiveDocument.Repaginate" after
each changing of the AutoFitBehaviour.

I just checked my macro code, and it has in fact two .Repaginate's each
time:

Sub TablesOptimize()
Dim myTable As Table
For Each myTable In ActiveDocument.Tables
myTable.AutoFitBehavior (wdAutoFitContent)
Next myTable
ActiveDocument.Repaginate
ActiveDocument.Repaginate
For Each myTable In ActiveDocument.Tables
myTable.AutoFitBehavior (wdAutoFitWindow)
Next myTable
ActiveDocument.Repaginate
ActiveDocument.Repaginate
For Each myTable In ActiveDocument.Tables
myTable.AutoFitBehavior (wdAutoFitFixed)
Next myTable
ActiveDocument.Repaginate
ActiveDocument.Repaginate
End Sub

It seemed to work well... seems I had to tell Word twice, to emphasize that
I really meant it <g>.
Or maybe somebody has a better idea to force the tables to adjust to the new
setting/behaviour?

Greetings,
Klaus
 
H

Helmut Weber

Hi Klaus,

did you get my mail about programming QPS?

I count on you.

--
Cheers

Helmut Weber, MVP WordVBA

Win XP, Office 2003
"red.sys" & Chr$(64) & "t-online.de"
 
K

Klaus Linke

Helmut Weber said:
Hi Klaus,

did you get my mail about programming QPS?

I count on you.


And lost... I don't even have an idea what QPS is.

Sorry!!
Klaus
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top