Sie müssen den Code selbst analysieren, die VBA Extensibility-Bibliothek (auch bekannt als „VBIDE API“). Fügen Sie einen Verweis auf die Microsoft Visual Basic für Applikationen Extentibility 5.3 Typ Bibliothek, und dann können Sie Typen zugreifen wie CodePane
und VBComponent
:
Sub FindComments()
Dim component As VBComponent
For Each component In Application.VBE.ActiveVBProject.VBComponents
Dim contents As String
contents = component.CodeModule.Lines(1, component.CodeModule.CountOfLines)
'"contents" now contains a string with the entire module's code.
Debug.Print ParseComments(contents) 'todo
Next
End Sub
Sobald Sie ein Modul des contents
haben, müssen Sie Logik implementieren zu finden Kommentare ... und das kann schwierig sein - hier einige Beispielcode zu spielen:
Sub Test()
Dim foo 'this is comment 1
'this _
is _
comment 2
Debug.Print "This 'is not a comment'!"
'..and here's comment 3
REM oh and guess what, a REM instruction is also a comment!
Debug.Print foo : REM can show up at the end of a line, given an instruction separator
End Sub
So müssen Sie die Linien zu durchlaufen, verfolgen, ob der Kommentar in der nächsten Zeile/Fortsetzung von der vorherigen Zeile fortgesetzt, Überspringen String Liter als
Viel Spaß!
willst du den Inhalt eines Kommentars von einer Zelle lesen? Nehmen wir an, in Zelle A1 haben Sie einen Kommentar, möchten Sie ihn lesen? –
Nein. Ich suche nach einer Möglichkeit, "TEST" aus meinem Code zu lesen. – Vityata
Das Ruberduck-Team könnte so etwas in ihrem Code haben: http://chat.stackexchange.com/rooms/14929/vba-rubberducking – Chrismas007