Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.

Tip of the Day
Language: VB5,VB6
Expertise: Advanced
Jul 31, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

ConvertSelectedTex - Convert text selected in code window

' Convert to uppercase, lowercase, or propercase the text that is
' currently selected in the active code window

Sub ConvertSelectedText(VBInstance As VBIDE.VBE, Optional conversion As Long = _

    Dim startLine As Long, startCol As Long
    Dim endLine As Long, endCol As Long
    Dim codeText As String
    Dim cpa As VBIDE.CodePane
    Dim cmo As VBIDE.CodeModule
    Dim i As Long
    On Error Resume Next
    ' get a reference to the active code window and the underlying module
    ' exit if no one is available
    Set cpa = VBInstance.ActiveCodePane
    Set cmo = cpa.CodeModule
    If Err Then Exit Sub
    ' get the current selection coordinates
    cpa.GetSelection startLine, startCol, endLine, endCol
    ' exit if no text is highlighted
    If startLine = endLine And startCol = endCol Then Exit Sub
    ' get the code text
    If startLine = endLine Then
        ' only one line is partially or fully highlighted
        codeText = cmo.Lines(startLine, 1)
        Mid$(codeText, startCol, endCol - startCol) = StrConv(Mid$(codeText, _
            startCol, endCol - startCol), conversion)
        cmo.ReplaceLine startLine, codeText
        ' the selection spans multiple lines of code
        ' first, convert the highlighted text on the first line
        codeText = cmo.Lines(startLine, 1)
        Mid$(codeText, startCol, Len(codeText) + 1 - startCol) = StrConv(Mid$ _
            (codeText, startCol, Len(codeText) + 1 - startCol), conversion)
        cmo.ReplaceLine startLine, codeText
        ' then convert the lines in the middle, that are fully highlighted
        For i = startLine + 1 To endLine - 1
            codeText = cmo.Lines(i, 1)
            codeText = StrConv(codeText, conversion)
            cmo.ReplaceLine i, codeText
        ' finally, convert the highlighted portion of the last line
        codeText = cmo.Lines(endLine, 1)
        Mid$(codeText, 1, endCol - 1) = StrConv(Mid$(codeText, 1, endCol - 1), _
        cmo.ReplaceLine endLine, codeText
    End If
    ' after replacing code we must restore the old selection
    ' this seems to be a side-effect of the ReplaceLine method
    cpa.SetSelection startLine, startCol, endLine, endCol
End Sub

Francesco Balena
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date