Low-level parsing in VB doesn’t come up every day. This routine demonstrates how to search a VB module for dead module-level constants with only a few lines of code. Reading the entire contents of a file into a string variable is key to this approach:
Private Sub FindDeadConstants(ByVal _ PathAndFile As String) Dim FileHandle As Integer Dim FileContents As String Dim PositionOfDeclaration As Long Dim StartOfConstantName As Long Dim EndOfConstantName As Long Dim ConstantName As String 'open the file and read the contents 'into a string variable: FileHandle = FreeFile Open PathAndFile For Binary Access _ Read As FileHandle FileContents = _ Input$(LOF(FileHandle), _ FileHandle) Close FileHandle 'loop through all the module-level 'constants: Do PositionOfDeclaration = _ InStr(PositionOfDeclaration _ + 1, FileContents, _ "Private Const ") If PositionOfDeclaration > 0 Then 'we've found a constant: StartOfConstantName = _ PositionOfDeclaration _ + Len("Private Const ") EndOfConstantName = _ InStr( _ StartOfConstantName, _ FileContents, " ") ConstantName = _ Mid$(FileContents, _ StartOfConstantName, _ EndOfConstantName _ - StartOfConstantName) 'if the constant is not 'referenced beyond its 'declaration, then it's dead: If InStr(EndOfConstantName, _ FileContents, _ ConstantName) = 0 Then lstDeadConstants.AddItem _ ConstantName End If End If Loop Until PositionOfDeclaration = 0End Sub