Thema Datum  Von Nutzer Rating
Antwort
24.07.2024 14:48:34 Peter
NotSolved
24.07.2024 17:07:56 ralf_b
NotSolved
24.07.2024 20:46:53 Gast77375
NotSolved
25.07.2024 07:21:32 ralf_b
NotSolved
25.07.2024 17:27:21 Peter
NotSolved
Blau VBA-Modul auslesen (alle Makros auflisten)
26.07.2024 00:24:28 xlKing
Solved
26.07.2024 16:09:39 Peter
NotSolved
26.07.2024 00:28:39 ralf_b
NotSolved

Ansicht des Beitrags:
Von:
xlKing
Datum:
26.07.2024 00:24:28
Views:
68
Rating: Antwort:
 Nein
Thema:
VBA-Modul auslesen (alle Makros auflisten)

Hallo Peter,

wenn ich dein Anliegen richtig verstehe, willst du alle Makros auflisten, wo irgendwo im Code das Wörtchen Save vorkommt? Dann probiers mal mit diesem Code:

Private Type mdlProps
  Filename As String
  Modulename As String
  Procname As String
  Line As Long
  Linetext As String
End Type

Sub ListMacros()
  Dim tmp As Template, doc As Document, arr() As mdlProps, Suchwort As String, i As Long
  
  Suchwort = InputBox("Geben Sie ein Suchwort ein, das im Code eines beliebigen Makros enthalten sein soll", "ListMacros")
  ReDim arr(0)
  
  
  For Each tmp In Templates
    ListCode tmp.VBProject, tmp.Name, Suchwort, arr
  Next tmp
  
  For Each doc In Documents
    ListCode doc.VBProject, doc.Name, Suchwort, arr
  Next doc
  
  Debug.Print "Dateiname", "Modulname", "Prozedurname", "Zeile", "Zeilentext"
  For i = 1 To UBound(arr)
    Debug.Print arr(i).Filename, arr(i).Modulename, arr(i).Procname, arr(i).Line, arr(i).Linetext
  Next i
  
End Sub
Sub ListCode(prj As Object, Name As String, Suchtext As String, arr() As mdlProps)
  
  Dim mdl As Object, ln As String, u As Long
  
  For Each mdl In prj.VBComponents
    For i = 1 To mdl.CodeModule.CountOfLines
      ln = mdl.CodeModule.Lines(i, 1)
      If InStr(1, ln, Suchtext, vbTextCompare) > 0 Then
        u = UBound(arr) + 1
        ReDim Preserve arr(u)
        arr(u).Filename = Name
        arr(u).Modulename = mdl.Name
        arr(u).Procname = mdl.CodeModule.ProcOfLine(i, 0)
        arr(u).Line = i
        arr(u).Linetext = ln
      End If
    Next i
  Next mdl
  
End Sub

Oder soll das Wörtchen wirklich nur im Makronamen vorkommen? Der Code ließe sich dahingehend anpassen.

Gruß Mr. K.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
24.07.2024 14:48:34 Peter
NotSolved
24.07.2024 17:07:56 ralf_b
NotSolved
24.07.2024 20:46:53 Gast77375
NotSolved
25.07.2024 07:21:32 ralf_b
NotSolved
25.07.2024 17:27:21 Peter
NotSolved
Blau VBA-Modul auslesen (alle Makros auflisten)
26.07.2024 00:24:28 xlKing
Solved
26.07.2024 16:09:39 Peter
NotSolved
26.07.2024 00:28:39 ralf_b
NotSolved