View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Peter T Peter T is offline
external usenet poster
 
Posts: 5,600
Default Sizing Autoshapes based on text length

Typo

Autofit the column and return it's height.


should read of course

Autofit the row (entirerow) and return it's height.

Peter T

"Peter T" <peter_t@discussions wrote in message
...
Hi Nick,

Couple of ways -

Put text into a cell in an empty row and set column to pre determined

width.
Wrap text. Autofit the column and return it's height.

A textbox will autosize to height if the text has line breaks. This would
entail guestimating max characters that would fit into your pre-determined
width, finding the first space to the left of the end and replacing with a
linefeed, not chr(13) or vbCr, but a single vbLf or chr(10).
Also pad one line with characters that will autosize to correct width (to

be
removed later). Cater for margins.

Once autosize'd, if you want to replace text without the line feeds,

remove
the Autosize setting having got the new dimensions to re-dimension if
necessary.

I find textbox autosize more accurate than sheet column autosize. The

latter
approximates according to the default font width and the small cell indent
is slightly version dependant. However the cell method is much simpler,
although there is a max string length limit.

Not sure I've explained all that very well!

Regards,
Peter T

PS Maybe a third way might be to do it in a hidden instance of Word the

way
you say - never tried.



"Nick Hebb" wrote in message
oups.com...
BTW, a good example of what I'm talking about can be seen in Word. When
you doing automatic sizing in Word with the wrap text option selected,
the shape width remains the same but the height adjusts to fit.