Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB5,VB6
Expertise: Intermediate
Apr 27, 1999



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

GetSelectedText - The highlighted string in the code window

' Return the string of code the is selected in the code window
' that is currently active. 
' This function can only be used inside an add-in.

Function GetSelectedText(VBInstance As VBIDE.VBE) As String
     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
     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 Function
     ' 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 Function
     ' get the code text
     If startLine = endLine Then
          ' only one line is partially or fully highlighted
          codeText = Mid$(cmo.Lines(startLine, 1), startCol, endCol - startCol)
          ' the selection spans multiple lines of code
          ' first, get the selection of the first line
          codeText = Mid$(cmo.Lines(startLine, 1), startCol) & vbCrLf
          ' then get the lines in the middle, that are fully highlighted
          If startLine + 1 < endLine Then
               codeText = codeText & cmo.Lines(startLine + 1, _
                   endLine - startLine - 1)
          End If
          ' finally, get the highlighted portion of the last line
          codeText = codeText & Left$(cmo.Lines(endLine, 1), endCol - 1)
     End If
     GetSelectedText = codeText
End Function
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