Hello MVP's,
Although I have been working with Word and mail merges for many years I have
never had the need to resize variable text "on-the-fly" until now. Normally,
I set up documents this complex through a piece of software called PrintShop
Mail, which is as sweet for this type of funtion as it is expensive.
However, I am faced with a problem that I must somehow resolve through Word
(so long as it is capable) because the documents I am using for this
particular job were already laid out in Word and I do not have the time
needed to change these to my PrintShop Mail software.
In short, I have eight individual documents that run a mailmerge from
multiple Access queries. Since this is a custom billing program for members
of an organization, most of the information throughout each of the docs is
custom to the individual member, thus, these docs are filled with text boxes
throughout. The merged results are then printed on a billing form that is
pre-printed with multiple boxes, many of which are filled with the variable
data from the merge. One specific text box (the "Message" box) could contain
any of 28 different messages depending on the field value from the
corresponding query. The whole program is difficult enough as it is but I've
managed to get through it somehow from month to month.
The problem became a problem when my client decided that they no longer like
the the way the "Message" looks within the assigned box on the form. Since
the message box on the form is pre-printed with a border, every message must
fit within the boundaries of the box. These 28 messages could vary from a
single sentence to a whole paragraph of five sentences. In the past, I was
able to assign the largest font that would accomodate for the longest
message. The text was then centered inside the text box, both horizontally
and vertically. Of course, whenever a short message appears, the text looks
too small inside the box and the client no longer wants to do it this way.
They want me to shrink and expand the font size based on message size to fill
the box as much as possible.
As I mentioned above, PrintShop Mail is made for this kind of gig but it's
not something I know how to do in Word, it it's even possible? I found every
option to resize the text box to the text but not the other way around. I
have read every knowledge base article that talks about merges and text
formatting but can't find anything in regards to conditional sizing of text.
You guys are my last resource as I will not be able to keep the client around
if I can't get this to work on my next mailing, which happens to be this
week! It is too late to begin the layouts in PrintShop Mail since the front
end of the program takes me forever to get done leaving no extra time to work
on the docs except for the merges.
What really bothers me is that I have seen this before on some document I
received at one time from another client but I can't find it to save my @r$e!
The text, not the box, would resize based on length with each record but I
didn't have time to see how it was done.
I am in need of serious help and running out of time. Any suggestion or
known solution to this problem would be heavenly.
Thanks in advance for any words of wisdom (and for reading my novel?)
However, neither of these methods is likely to do what you want, because
c. they only reformat a single line of text
d. they "fit" the text by squeezing it sideways, i.e. the font height does
not change at all, which results in text which is at best really ugly and is
generally pretty unreadable.
If you don't like what happens to text using method (a) I wouldn't bother
trying to experiment with (b) - it's pretty much the same.
> What really bothers me is that I have seen this before on some document I
> received at one time from another client but I can't find it to save my
> @r$e!
So unfortunately, I don't know how that was done.
I would suggest that the only way you are likely to be able to do this
reasonably quickly in Word is to output the merge to a new document and use
VBA to postprocess the document. I have never done it, but I suppose I would
probably do something like the following rather obvious algorithm:
a. set the text box to fit the text
b. if the box is bigger than the space available, reduce the text size
until the box size is equal or smaller, else if the box is smaller, increase
the text size until the box size is equal or larger
Peter Jamieson
"Eric Torres" <Eric Tor...@discussions.microsoft.com> wrote in message
news:AFB5D86E-BB7B-40FE...@microsoft.com...
Peter Jamieson
"Peter Jamieson" <p...@KillmapSpjjnet.demon.co.uk> wrote in message
news:ewODDXDa...@TK2MSFTNGP05.phx.gbl...
e.g. in the simple case where you decide which text to insert based on a
MERGEFIELD called "messagenumber", you might have
{ IF { MERGEFIELD messagenumber } = 1 "a short message" ""
}{ IF { MERGEFIELD messagenumber } = 2 "a much longer message" ""
}
format "a short message" directly in a large font, and "a much longer
message" directly in a small font, each designed to fit the text.
Peter Jamieson
"Eric Torres" <Eric Tor...@discussions.microsoft.com> wrote in message
news:AFB5D86E-BB7B-40FE...@microsoft.com...
Thank you for your suggestions. Unfortunately, I am not using IF statements
for the messages as these are created through the queries in the background.
I'm actually inserting the message field which already has the message
spelled out. The program is quite complicated for me as it is. There are
two queries working in sync for each doc. The first one does a lot of the
mathematical calculations for the invoice along with a few custom messages
and footnotes. The second one (which is the one difectly linked to the doc)
is the one that appends the messages into the message field along with some
other calculations. I tried converting the box to a table cell but the Fit
Text option only creates a single line of text inside the cell and anything
else past the cell boundary just disappears, as you mentioned on your first
response.
Obviously, this is something more geared up for someone with VBA experience
opposed to a self-taught individual like myself. Looks like I'll have to
blast the news to my client today and hope for the best.
Thank you for your time and input.
Eric
--
To every opportunity there''s an Access, but first you must Excel at
choosing the right Word...
E.T.
If you are getting the texts through queries, you may be able to get the
text length using the same query, then use that to name a file or bookmark
in a file that you can include via INCLUDETEXT. Each file would have the
formatting you need for a particular text length (there would obviously have
to be some approximations as you'd be going on character count, not actual
text width).
Might also be difficult because of difficulties working with text boxes and
fields, but thought I'd just mention it anyway.
Peter Jamieson
"Eric Torres" <EricT...@discussions.microsoft.com> wrote in message
news:1CB92F66-F5D7-4F73...@microsoft.com...
Thanks again for all your input on this. I'll make sure to pass along all
the information you gave me just in case she needs it. You never know.
See you around!
Peter Jamieson
"CMO" <C...@discussions.microsoft.com> wrote in message
news:08B08071-BBA8-4322...@microsoft.com...