Hola NextorJoc.
Podrías utilizar el siguiente código como base:
Private Sub VerificaAltura()
Label1.Height = Entero(TextWidth(Label1.Caption) _
/ Label1.Width) * TextHeight(Label1.Caption)
End Sub
Private Function Entero(nUm As Single)
'Redondea al número entero superior
If nUm - Int(nUm) > 0 Then
Entero = Int(nUm) + 1
Else
Entero = Int(nUm)
End If
End Function
La función textwidth te da el ancho de la cadena.
La función Entero la cree para que el número de líneas sea el entero superior de la división del ancho de la cadena por el ancho del label (puede que exista una de norma, pero no la hallé).
Nota Importante: La función Textwidth te indica el ancho de la cadena, pero considerando el tipo de letra del form. Luego, debes tener la precaución de que ambos tipos de letra sean iguales.
Además, ten en cuenta que sólo es una idea para comenzar. Seguramente te encontrarás conque la idea trabaja demasiado al límite en cuanto a la altura, por lo que quizás te convenga agregar un par de twips por línea. Por otro lado, sequramente tendrás problemas cuando sea un gran número de líneas, a causa de que los espacios en blanco que queden al correrse una palabra larga a la línea inferior no será considerado como ancho adicional por la función Textwidth. Ahí también le puedes agregar un poco de tolerancia al ancho del label.
Bueno... Pero si fuera perfecto te quitaría toda la entretención.
Ojalá te inspire.