2016-04-15 3 views
0

Ich möchte feststellen, ob ein Makro von Excel aufgezeichnet wird "Record Macro" und wenn möglich, wenn es von Personen geändert wurde.Ermitteln, ob ein Makro aufgezeichnet und nicht von Menschen geändert wurde

Es gibt einige Hinweise darauf. Zum Beispiel

1) ein Makro aufgezeichnet beginnt immer von

Sub m() 
' 
' m Macro 
' 

' 
    first line 
    ... 
End Sub 

(Beachten Sie, dass manchmal, den Benutzernamen nach m Macro) können

2) eine immer aufgezeichneten Makro erscheinen in einem Standardmodul aufgezeichnet werden

3) eine aufgezeichnete Makro hat nie eine Variable, eine Bedingung, um eine Schleife oder einen Prozeduraufruf

von der Syntax des sub, wir können nicht 100% sicher sein, dass ein Makro aufgezeichnet wird, weil wir Wort für Wort immer folgen und manuell eine gleiche Funktion schreiben können. Wir können nicht zu 100% sicher sein, wenn ein aufgezeichnetes Makro nicht geändert wird, da Benutzer einen Wert oder einen Index manuell ändern können. Gibt es jedoch weitere Hinweise (wie ich es aufgelistet habe), um diesen Vertrauensgrad zu verbessern?

Gibt es sonst einen anderen Mechanismus als die Syntax, um dies zu bestimmen?

+2

Ich bin mir nicht so sicher über dein Ziel, aber ich würde einen "Hinweis" hinzufügen: ein aufgezeichnetes Makro hat eine Menge von "Select" ... – user3598756

+0

Ich denke, dass jedes Mal ein Modul hinzugefügt wird, das mit dem typischen kombiniert Formatierung, die oben gezeigt wird, könnte Ihnen genug geben, einen Auslöser für das Erkennen eines Makros zu programmieren, das notiert wird. In Bezug darauf, ob ein Makro bearbeitet wurde, ist der einzige Ansatz, den ich mir vorstellen kann, das Speichern des Codes aus dem VBE für die fragliche Methode und das Überprüfen/Überwachen, ob sich das Makro ändert. Nebenbei denke ich, dass aufgezeichnete Makros Schleifen haben können. – Will

+0

@Wie kann ein aufgezeichnetes Makro Schleifen haben? – SoftTimur

Antwort

0

Kurze Antwort: Nein

ich einen Unter schreiben konnte genau aussehen wie ein aufgezeichnetes ein - so würden Sie den Unterschied nicht kennen.

In ähnlicher Weise könnte ein weniger erfahrener Benutzer Makros aufzeichnen und dann die benötigten Bits in ein anderes Makro kopieren/einfügen - so würde es immer noch wie ein aufgezeichnetes Makro aussehen.


Die nächste Sache, die Sie dies haben könnte, ist ein Makro-Event Driven für die Arbeitsmappe alle Änderungen in der VBProject zu verfolgen - aber jemand in der VBE arbeiten, werden mehr als wahrscheinlich haben das Know-how rund um das zu bekommen sowieso.

Verwandte Themen