Good! Are you up for a kludge solution? Use two Label controls... make the
first one the size you wanted the Label to originally be, then put a second
smaller Label control on top of it (don't worry where as we are going to
position it via code). Make the both Labels the same background color. Add a
border around the first (big) one if you want and remove its Caption. Make
sure the second (smaller) Label has no border and set its TextAlign property
to 2-fmTextAlignCenter. Now, just use code something like the following to
assign the text to the (AutoSize'd Label2) and then center that assigned
text (in the smaller Label) within the bigger Label. Here I'm assuming the
bigger Label is named Label1 and the smaller Label is named Label2 and I
also provided comments to explain why I did what I did...
With Label2
' First, assign your Multi-Line text to the smaller Label this way
.AutoSize = False
' Make the Label big enough to house your longest and tallest text
.Width = Label1.Width
.Height = Label1.Height
' Now assign the text using Line Feeds to separate lines of text
.Caption = "This is Line Number 1" & vbLf & _
"and here's Line 2"
' This next line shrinks the Label to the limit of the text
.AutoSize = True
' Next, center the smaller Label within the larger one
.Top = Label1.Top + (Label1.Height - .Height) / 2
.Left = Label1.Left + (Label1.Width - .Width) / 2
End With