Office: Quellcodes Vergleichen

Helfe beim Thema Quellcodes Vergleichen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Guten Abend zusammen, ich würde gerne ein Makro schreiben, mit dem es möglich ist Makros aus anderen Excel Dateien zu vergleichen. Sprich in Meiner... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Flobbes, 10. November 2017.

  1. Quellcodes Vergleichen


    Guten Abend zusammen,

    ich würde gerne ein Makro schreiben, mit dem es möglich ist Makros aus anderen Excel Dateien zu vergleichen.

    Sprich in Meiner Hauptdatei, in der das "Vergleichen" Makro läuft, möchte ich eine Tabelle mit den zu untersuchenden anderen Dateien anlegen:
    Tabelle1.xlsm
    Tabelle2.xlsm
    Tabelle3.xlsm

    Wird das Makro "Vergleichen" ausgeführt soll es den Quellcode, der in Tabell1 enthaltenen Makros, mit den Quellcodes der in Tabelle 2 und 3 enthaltenen Makros vergleichen. Ziel ist beispielsweise die Aussage Tabelle 2 ist ein Plagiat von Tabelle 1, Tabelle 3 ist nicht gleich.

    Da ich leider absoluter Anfänger bin, stehe ich vor mehreren Problemen:
    - Geht das überhaupt?
    - Wie komme ich an den Quellcode in externen Excel Arbeitsmappen?
    - Wie kann ich den eingeladenen Code dann Zeile für Zeile vergleichen?

    Besten Dank im Voraus und viele Grüße,
    Flobbes

    :)
     
  2. Möchtest du das immer mal wieder automatisch vergleichen, oder nur einmalig. Dann ist es vielleicht einfacher Notepad++ zu nutzen. Einfach die beiden Codes in die Fenster von NotePad++ kopieren und vergleichen lassen.

    Aber ja, man kann auch den Code direkt vergleichen, wenn die Excelmappe und Excel so eingestellt sind, das die das zulassen.

    Excel -> Datei - Optionen -> Trust Center -> Einstellung für das Trust Center -> Zugriff auf das VBA-Projektobjektmodell vertrauen

    Da kann man aber ganz viel Blödsinn mit anstellen. Nicht umsonst ist dieser Hacken Standardmäßig nicht gesetzt!

    Guter Rat von mir: Lass es sein und nutze NotePadd++
     
    rastrans, 12. November 2017
    #2
  3. Hallo,
    Schonmal Danke für die schnelle Rückmeldung.
    Genau gesagt handelt es sich hierbei um eine Studienarbeit. Deshalb sollte sich das mit dem“Laiendasein“ im Laufe der Arbeit ändern *Smilie
    Aber VBA ist gesetzt, auf ein anderes Programm ausweichen geht leider nicht...
     
  4. Quellcodes Vergleichen

    Hallo nochmal,

    Vielleicht kann mir nochmal jemand auf die Sprünge helfen. Wenn ich die oben genannte Einstellung gemacht habe, wie muss dann mein Code aussehen?

    Zunächst muss ich wahrscheinlich die externe Datei einbinden: Set ext_WB = Workbook.Open(Pfad & „Name“)

    Auf die Zellen könnte ich beispielsweise so zugreifen: Ext_WB.Sheets(„Tabelle1“).Range(„A2”)


    Aber in diesem Fall möchte ich ja nicht auf eine Zelle in der externen Datei zugreifen, sondern auf ein Makro. Wie sieht die Anweisung dafür aus?
     
  5. Hallo Flobbes,

    was auch immer mit "Plagiat" hier gemeint ist: Du kannst einfach vergleichen, ob das komplette Modul identisch ist oder eben nicht.

    Den Code eines Moduls liest Du nach folgendem Beispiel aus:
    Code:
    Das machst Du bei den anderen analog und vergleichst die Strings.

    Da Du jetzt weißt, wie man alle Zeilen ausliest, kannst Du Dir auch herleiten, wie man eine ausliest. Auch weißt Du, wenn Du den Code verstanden hast, wie man die Anzahl der Codezeilen feststellt.

    Grüße
    EarlFred
     
    EarlFred, 12. November 2017
    #5
  6. ...das Dilemma ist... hier wird immer nur Modul1 mit Modul 1 usw. vergleichen. Wenn ein Student clever istund nur die Modulnamen ändert, läuft das schon wieder ins Leere...
    Oder soll jedes Modul mit jedem vergleichen werden? Dann müssten vorher noch die VBE Komponenten ermittelt werden...
     
  7. \@Ralf,
    ganz genau - aber nicht nur das, sondern auch: Variablennamen, Reihenfolge der Prozeduren, allein schon eine zusätzliche Leerzeile genügt.... Endlose Liste

    Darum die Frage:
    Was soll ein "Plagiat" sein und was nicht?

    Die Aussage "ist nicht gleich" ist hingegen leicht zu prüfen. Da der Grund für den Vergleich nicht angegeben ist (kann ja sein, dass der Code nur auf Übereinstimmung geprüft werden soll, um sicherzugehen, dass er aktuell ist), ist das halt schwer einzuschätzen.

    Grüße
    EarlFred
     
    EarlFred, 12. November 2017
    #7
  8. Quellcodes Vergleichen

    Erstmal muss ich sagen, dass ich echt überrascht bin wie zahlreich und kompetent hier geholfen wird. Danke dafür.

    Ja ich denke "ähnliche" Codes zu erkennen ist wirklich schwierig. Vorerst will ich versuchen codes die 100% identisch sind zu erkennen. Wenn das läuft kann verfeinert werden.

    Ja, das wäre das Ziel. Quervergleich von allen Modulen in beiden Dateien. Kann man alle enthaltenen Modulnamen auslesen? Dann könnte ich diese praktisch als Variable in EarlFred's Code einfügen.
     
  9. Hallo Flobbes,

    Code:
    Grüße
    EarlFred
     
    EarlFred, 12. November 2017
    #9
  10. Das Erkennen ist nur die eine Seite. Vermutlich geht es ja darum, zu erkennen,ob jemand per Copy and paste "abgeschrieben" hat? Und da wird es schon schwieriger. Wie gesagt, geschickt ein paar Namen (egal ob Modul, Variable, Prozedur oder was auch immer) geändert, und schon wird es mit dem Beweis schwierig. Indizien allein zählen kaum als Beweis. Man kann bestenfalls seine schwarzen Schafe erkennen und für die Zukunft mehr im Auge behalten...
     
  11. Hallo zusammen,

    vielleicht lohnt in dem Falle auch mal ein Blick über den Excel-Tellerrand, denn im benachbarten Word-Teich schwimmt ein ganz ansehnlicher Comparefisch.

    Mit dem kann man eine Kopie des Excel-Modultextes mit einer vorab exportierten/gespeicherten .bas oder .frm-Datei vergleichen und bekommt das auch noch ganz übersichtlich angezeigt.

    Beispiel in Word 2010: Code:
     
    haklesoft, 13. November 2017
    #11
  12. Quellcodes Vergleichen

    Hallo,

    Du könntest auch so eine Art "Prüfsumme" bilden:
    Aus folgendem Code wird "SetWorkbooks.Open.VBProject.VBComponents().CodeModule.Lines.CountOfLines"

    Code:
    Vorgehen:
    Suche Dir wichtige Codewörter (z. B: Methoden) aus dem Code, von denen Du denkst, dass sie (in dieser Reihenfolge) entscheidend für den Codeablauf sind (vorstehend rot markiert). Entferne dann daraus alle Variablennamen und teile sie ggf. auf, damit Du das erreichst.

    Code:
    wb.VBProject.VBComponents("Modul1").CodeModule"
    wird zu
    ...".VBProject.VBComponents(", ").CodeModule")...

    Code:
    Das könnte ein weiterer Anhalt sein, ob jemand abgekupfert hat.

    Bei umfangreichen Codes kannst Du das noch abwandeln...

    Grüße
    EarlFred
     
Thema:

Quellcodes Vergleichen

Die Seite wird geladen...
  1. Quellcodes Vergleichen - Similar Threads - Quellcodes Vergleichen

  2. Excel Link Quellcode mit Makros automatisch ändern

    in Microsoft Excel Hilfe
    Excel Link Quellcode mit Makros automatisch ändern: Hallo, kann mir wer helfen ich habe Chatgpt gefragt wie ich den Quellcode von einem Hyperlink automatisch anhand von Makros ändern kann, wenn ich die Ordner verschiebe und habe das als Antwort...
  3. Excel VBA Quellcode einer Nessus-Datei durchsuchen

    in Microsoft Excel Hilfe
    Excel VBA Quellcode einer Nessus-Datei durchsuchen: Hallo, ich möchte einen VBA-Code erstellen, mit dem der Quellcode einer Nessus-Datei (im selben Ordner wie die Excel) auf Stichwörter durchsucht werden kann. Man kann ja diesen Quellcode lesen,...
  4. Quellcode zentral ablegen und pflegen

    in Microsoft Excel Hilfe
    Quellcode zentral ablegen und pflegen: Hallo zusammen, das ist sicherlich keine neue Fragestellung, dennoch suche ich noch nach Möglichkeiten bestimmte Funktionen oder Unterprogramme zentral zu verwalten und mehreren Kollegen zur...
  5. Quellcode zur Übergabe von Dateipfad + Dateiname an VBA

    in Microsoft Excel Hilfe
    Quellcode zur Übergabe von Dateipfad + Dateiname an VBA: hallo, habe erst mal hier im forum geschaut, aber nichts brauchbares gefunden. folgendes habe ich vor: möchte es über VBA hinkriegen, daß man mit einem entsprechenden dialogfenster eine datei...
  6. Google Maps Karte in Formular anzeigen (durch Quellcode)

    in Microsoft Access Hilfe
    Google Maps Karte in Formular anzeigen (durch Quellcode): Hallo, ich versuche in Access die Karte von Google Maps zu öffnen (Quellcode wird in VBA eingefügt). Das Problem ist dass der Quellcode zwar stimmt aber ich die Seite nicht angezeigt bekomme....
  7. Outlook-Formularvorlagendatei mit Quellcode

    in Microsoft Outlook Hilfe
    Outlook-Formularvorlagendatei mit Quellcode: Hallo Zusammen, ich habe eine Herausforderung =). Ich bin noch relativ frisch in der Programmierung mittels VBA / VBS in Bezug auf Microsoft Outlook und habe nun die Aufgabe zugeteilt...
  8. Excel Quellcode?

    in Microsoft Excel Hilfe
    Excel Quellcode?: Hallo, ich bin neu hier und habe gleich eine Frage :-) Im Rahmen eines Faches in der Uni muss ich eine Excel Tabelle erstellen, konkret handelt es sich hierbei um eine Excel welche mit einem...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden