Case switching

I have a bad habit of hitting the CapsLock key and when I type code, the shift key does the opposite, so instead of typing m_bSomeVariable, I will look up and see that I have typed M_BsOMEvARIABLE. DevStudio provides <Shift><U> and <Ctrl><Shift><U> to lower and upper case a selection, but nothing provides a "SwapCase" function. The following macro will do the swap. I assigned it to <Alt><U>, but that is entirely up to you ....


Sub SwapCase()
	' DESCRIPTION: Macro to swap the case of selected words.
	'
	' David Little
	' COADE, Inc.
	' Houston, TX
	' dlittle@coade.com
	' 5OCT98
	'
	str = ActiveDocument.Selection.Text
	str1 = ""
	i = 1
	Do While (i < Len(str)+1)
		If (Mid(str, i, 1) = LCase(Mid(str, i, 1))) Then
			str1 = str1 + UCase(Mid(str, i, 1))
		Else
		str1 = str1 + LCase(Mid(str, i, 1))
		End If
		i = i + 1
	Loop
	ActiveDocument.Selection.Text = str1
End Sub


Comments

  • SwapCase macro updated for VS.NET

    Posted by Legacy on 07/08/2002 12:00am

    Originally posted by: David Little

    VS.NET has moved all the VB objects around, and I have updated the SwapCase macro for the new environment.  It works just like the old one..
    
    

    Sub SwapCase()
    'DESCRIPTION: Macro to swap the case of selected words.
    '
    ' David Little
    ' COADE, Inc.
    ' Houston, TX
    ' dlittle@coade.com
    ' 5OCT98
    ' Modified for VS.NET 8JULY2002
    '
    Dim objSel As TextSelection = DTE.ActiveDocument.Selection
    If objSel.IsEmpty Then
    Return ' nothing selected
    End If
    Dim str As String = objSel.Text
    Dim str1 As String = ""
    Dim i As Integer = 1
    Do While (i < Len(str) + 1)
    If (Mid(str, i, 1) = LCase(Mid(str, i, 1))) Then
    str1 = str1 + UCase(Mid(str, i, 1))
    Else
    str1 = str1 + LCase(Mid(str, i, 1))
    End If
    i = i + 1
    Loop
    objSel.Insert(str1, vsInsertFlags.vsInsertFlagsContainNewText)
    End Sub

    Reply
  • replacing instead of adding to

    Posted by Legacy on 12/26/2001 12:00am

    Originally posted by: Max MacLean

    When I ran the above macro, it appended the converted
    string to the end of the origanal string. I added

    ActiveDocument.Selection.Delete
    just before the
    ActiveDocument.Selection.Text = strNew

    Peace and Happiness


    Reply
  • Enhancement required...

    Posted by Legacy on 10/23/2001 12:00am

    Originally posted by: dmaly


    Is it possible to SELECT back the converted area ?

    Reply
  • Alternate Macro

    Posted by Legacy on 05/31/2001 12:00am

    Originally posted by: George

    Here is an alternate macro to swap the case of the selected text that doesn't use as many calls to the string functions:
    
    

    Sub SwapCase()
    ' DESCRIPTION: Swap the case of the current selection.

    strText = ActiveDocument.Selection.Text

    For i = 1 To Len(strText)

    ch = Asc(Mid(strText, i, 1))

    If (ch >= 65 And ch <= 90) Or (ch >= 97 And ch <= 122) Then ch = ch Xor 32

    strNew = strNew + Chr(ch)

    Next

    ActiveDocument.Selection.Text = strNew

    End Sub

    Reply
  • Case Switching with ease 1.0

    Posted by Legacy on 01/20/1999 12:00am

    Originally posted by: Farhan Noor Qureshi

    This macro is a very handy tool for me. Thanks David!

    The main problem is not about caps lock's wrong position on the key board, rather it is the programmer's attention on his work.

    Very good solution to a very annoying problem.


    Farhan Noor Qureshi

    Reply
  • Case swap macro comment

    Posted by Legacy on 11/30/1998 12:00am

    Originally posted by: Filip Dossche

    I have the same typing problem so this is really a neat bit of code, quite small and not really very difficult but "why did'nt I think of that myself !!"

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Protecting business operations means shifting the priorities around availability from disaster recovery to business continuity. Enterprises are shifting their focus from recovery from a disaster to preventing the disaster in the first place. With this change in mindset, disaster recovery is no longer the first line of defense; the organizations with a smarter business continuity practice are less impacted when disasters strike. This SmartSelect will provide insight to help guide your enterprise toward better …

  • Packaged application development teams frequently operate with limited testing environments due to time and labor constraints. By virtualizing the entire application stack, packaged application development teams can deliver business results faster, at higher quality, and with lower risk.

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds