A ver si esto lo que quieres:
Código:
Sub MayuscMinusc()
'
' MayuscMinusc Macro
' Macro grabada el 12/02/2006 por Marcos
Dim NFil(128), NCol(128), CFil(128), Ccol(128), Nra, Nia, Nja, ra, ia, ja As Integer
Dim letras As String
AreaCount = Selection.Areas.Count
If AreaCount < 128 Then
ia = 1
For Each A In Selection.Areas
NFil(ia) = A.Row
NCol(ia) = A.Column
CFil(ia) = A.Rows.Count
Ccol(ia) = A.Columns.Count
ia = ia + 1
Next A
Nra = ia - 1
ra = 1
ia = 1
ja = 1
Do While ra <= Nra
Nia = CFil(ra)
ia = NFil(ra)
Nja = Ccol(ra)
ja = NCol(ra)
Do While ia < NFil(ra) + CFil(ra)
Do While ja < NCol(ra) + Ccol(ra)
If Asc(Cells(ia, ja).Value) > 96 Then
letras = UCase(Cells(ia, ja).Value)
Cells(ia, ja) = letras
ja = ja + 1
Else
letras = LCase(Cells(ia, ja).Value)
Cells(ia, ja) = letras
ja = ja + 1
End If
Loop
ja = NCol(ra)
ia = ia + 1
Loop
ra = ra + 1
Loop
Else
MsgBox "No aplica a más de 128 áreas, y usted seleccionó " & AreaCount & ".", vbDefaultButton1, "David le recuerda:"
End If
End Sub
Un Saludo.