Comentario en la clase
Caso práctico: Cambiar texto a MAYÚSCULAS
Mi respuesta en dos partes una sin rodeo y la otra con rodeo (convertí el si y el no en 1 o 2 o simplemente tomando el si o no en los case):
Sub Convertir_Mayusc_V2()
Dim Celda As Range
Dim opciondetexto As Byte
opciondetexto = MsgBox("seleccione 'Si' para mayusculas y 'NO' para minusculas", vbYesNo + vbInformation)
If opciondetexto = vbYes Then
opciondetexto = 1
Else
opciondetexto = 2
End If
For Each Celda In Selection
Select Case opciondetexto
Case 1
Celda.Value = VBA.UCase(Celda)
Case 2
Celda.Value = VBA.LCase(Celda)
End Select
Next Celda
End Sub
Sub Convertir_Mayusc_V3()
Dim Celda As Range
Dim OpcionDeTexto As VbMsgBoxResult
OpcionDeTexto = MsgBox( _
"Seleccione Sí para mayúsculas y No para minúsculas.", _
vbYesNo + vbInformation, _
"Convertir texto")
For Each Celda In Selection
Select Case OpcionDeTexto
Case vbYes
Celda.Value = VBA.UCase(Celda.Value)
Case vbNo
Celda.Value = VBA.LCase(Celda.Value)
End Select
Next Celda
End Sub
Sub Convertir_Mayusc_V2()
Dim Celda As Range
Dim opciondetexto As Byte
opciondetexto = MsgBox("seleccione 'Si' para mayusculas y 'NO' para minusculas", vbYesNo + vbInformation)
If opciondetexto = vbYes Then
opciondetexto = 1
Else
opciondetexto = 2
End If
For Each Celda In Selection
Select Case opciondetexto
Case 1
Celda.Value = VBA.UCase(Celda)
Case 2
Celda.Value = VBA.LCase(Celda)
End Select
Next Celda
End Sub
Sub Convertir_Mayusc_V3()
Dim Celda As Range
Dim OpcionDeTexto As VbMsgBoxResult
OpcionDeTexto = MsgBox( _
"Seleccione Sí para mayúsculas y No para minúsculas.", _
vbYesNo + vbInformation, _
"Convertir texto")
For Each Celda In Selection
Select Case OpcionDeTexto
Case vbYes
Celda.Value = VBA.UCase(Celda.Value)
Case vbNo
Celda.Value = VBA.LCase(Celda.Value)
End Select
Next Celda
End Sub