Cambiar tamaño de letra para ajustar al tamaño de label

Les escribo nuevamente con una consulta, ¿Cómo haría para que el tamaño de letra se ajuste al tamaño de un "label", es decir: en el label se muestran preguntas y respuestas con incisos, que se ajustan perfectos al tamaño del label, pero hay otros que no por la cantidad de texto.

En la imagen 1 el texto entra correctamente mostrando los 4 incisos, en la imagen 2. Solo muestra los 3 primeros incisos.

El label muestra el contenido con la siguiente macro:

Private Sub CommandButton1_Click()

Dim ultimo, contador_frases, contador_imagenes As Integer

ultimo = Worksheets("FRASES").Cells(Rows.Count, 2).End(xlUp).Row

contador_frases = WorksheetFunction.RandBetween(2, ultimo)

UserForm6.Label2.Caption = Worksheets("FRASES").Cells(contador_frases, 2).Value

End Sub

gracias a todos por su tiempo.

1 respuesta

Respuesta
2

Supongo que en la celda tienes varias líneas, cada línea la insertaste con

Alt + Enter eso significa que es le caracter (10).

Entonces en base al número de líneas es como vamos a ajustar el tamaño de la letra.

Prueba lo siguiente:

Private Sub CommandButton1_Click()
  Dim i As Long, n As Long, j As Long, nSize As Long
  Dim frase As String
  '

Hay un problema con el editor del foro, no me permite poner el código completo:

Private Sub CommandButton1_Click()
  Dim i As Long, n As Long, j As Long, nSize As Long
  Dim frase As String
  '
  With Worksheets("FRASES")
    n = WorksheetFunction.RandBetween(2, .Cells(Rows.Count, 2).End(3).Row)
    frase = .Cells(n, 2).Value
  End With

Va:

Private Sub CommandButton1_Click()
  Dim i As Long, n As Long, j As Long, nSize As Long
  Dim frase As String
  '
  With Worksheets("FRASES")
    n = WorksheetFunction.RandBetween(2, .Cells(Rows.Count, 2).End(3).Row)
    frase = .Cells(n, 2).Value
  End With
  '
  For i = 1 To Len(frase)
    If Mid(frase, i, 1) = "problema" Then
      j = j + 1
    End If
  Next
  Select Case j
    Case 4, 5, 6: nSize = 12
    Case 7, 8:    nSize = 10
    Case 9, 10:   nSize = 8
    Case Is > 10: nSize = 6
  End Select
  With UserForm6.Label2
    .Caption = frase
    .Font.Size = nSize
  End With
End Sub

Cambia en la macro:

"problema"

Por:

Nota: lo tuve que hacer de esa manera porque el editor del foro detecta el texto "chr" y lo interpreta como un texto inválido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas