My benchmarking shows that ToggleCase can crunch through a 2,000,000character string in under 4 seconds on a Pentium II.
Public Function ToggleCase(ByVal strData As String) As String 'This technique gets its blistering 'speed from the super efficient 'bitwise operation. Dim i As Long Dim lngUBound As Long Dim str() As Byte 'put the string into a byte array str() = strData 'cache the upper boundary value of the array lngUBound = UBound(str) For i = 0 To lngUBound 'toggling the case only applies alpha characters If str(i) > 64 And str(i) < 123 Then 'XOR-ing the ASCII value of the character with 32 'has the effect of toggling its case str(i) = str(i) Xor 32 End If Next i 'return the