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

  • Hurricane Sandy was one of the most destructive natural disasters that the United States has ever experienced. Read this success story to learn how Datto protected its partners and their customers with proactive business continuity planning, heroic employee efforts, and the right mix of technology and support. With storm surges over 12 feet, winds that exceeded 90 mph, and a diameter spanning more than 900 miles, Sandy resulted in power outages to approximately 7.5 million people, and caused an estimated $50 …

  • Instead of only managing projects organizations do need to manage value! "Doing the right things" and "doing things right" are the essential ingredients for successful software and systems delivery. Unfortunately, with distributed delivery spanning multiple disciplines, geographies and time zones, many organizations struggle with teams working in silos, broken lines of communication, lack of collaboration, inadequate traceability, and poor project visibility. This often results in organizations "doing the …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds