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

  • On-demand Event Event Date: September 10, 2014 Modern mobile applications connect systems-of-engagement (mobile apps) with systems-of-record (traditional IT) to deliver new and innovative business value. But the lifecycle for development of mobile apps is also new and different. Emerging trends in mobile development call for faster delivery of incremental features, coupled with feedback from the users of the app "in the wild." This loop of continuous delivery and continuous feedback is how the best mobile …

  • Java developers know that testing code changes can be a huge pain, and waiting for an application to redeploy after a code fix can take an eternity. Wouldn't it be great if you could see your code changes immediately, fine-tune, debug, explore and deploy code without waiting for ages? In this white paper, find out how that's possible with a Java plugin that drastically changes the way you develop, test and run Java applications. Discover the advantages of this plugin, and the changes you can expect to see …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds