Showing results 1 to 8 of 8

Thread: Größe der VBA-Datei

  1. #1
    Join Date
    17.09.2008
    Posts
    14

    Default Größe der VBA-Datei

    Hallo

    Die VBA-Datei unseres Hauptprojekts (Project.vba) belegt momentan 27 MB Speicher.
    Wenn ich aber alle Dateien (Formen, Module, Klassen,...) exportiere, belegen alle diese kleinen Dateien zusammen nur 5 MB. Woher kommt das? Wie kann die 27 MB wieder reduzieren, denn scheinbar braucht der Code ja nicht so viel?

    Danke und Grüße
    Robert

  2. #2
    Join Date
    30.05.2007
    Location
    Salzburg
    Posts
    879

    Default Re: Größe der VBA-Datei

    Hallo,

    Also 27MB für den VBA-Runtime Code ist nicht gerade wenig

    Ich würde wie folgt vorgehen:
    - zur Sicherheit ein Projekt-Backup erstellen
    - alle Formen, Module, Klassenmodule,... exportieren
    - den Code aus "thisProject" in eine Textdatei kopieren
    - benötigten Referenzen (Tools -> Extras -> Verweise) aufschreiben
    - zenOn Editor schließen
    - in den SQL Ordner wechseln (C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\COPA-DATA\SQL\\FILES\zenOn\system)
    - dort die beiden Dateien "Projekt.vba" und "Project_m.vba" umbenennen (z.B. "_bkp_Project_m.vba")
    - zenOn Editor starten (die beiden Dateien werden nun leer im Verzeichnis angegt)
    - im VBA Editor wird das VBA Runtime-Projekt leer sein
    - benötigten Referenzen (Tools -> Extras -> Verweise) hinzufügen
    - alle Formen, Module, Klassenmodule,... importieren
    - den Code von "thisProject" von der Textdatei kopieren

    VBA hat nämlich manchmal die Eigenschaft, gelöschten Code nicht wirklich zu löschen sondern diesen einfach als "inaktiv" zu kennzeichnen... .. und darauf hat zenOn keinen Einfluss....
    -> ähnliches Verahlten kann auch für den VBA Editor Code feststellen (zenWorkspace.vba)...


    Gruß,
    Herbert
    Last edited by herberto : 12th March 2009 at 20:33

  3. #3
    Join Date
    17.09.2008
    Posts
    14

    Default Re: Größe der VBA-Datei

    Vielen Danke für die schnelle Antwort.

    Ja, 27 MB sind auf alle Fälle zu viel. Ich kenne ähnliche Effekte von Access, wo auch gelöschte Datensätze erstmal als "Leichen" in der DB verbleiben und die Datei aufblähen bis sie wieder mal bereinigt wird.

    Na jedenfalls habe ich die Anleitung Schritt-für-Schritt befolgt. Das Ergebnis ist, dass die VBA-Datei jetzt 9,5 MB groß ist. Das Ganze läßt auch kompilieren und fährt sowohl auf dem Entwicklungs- als auch auf dem Zielrechner hoch. Sieht also gut aus.

    Danke und Grüße
    Robert

  4. #4
    Join Date
    30.05.2007
    Location
    Salzburg
    Posts
    879

    Default Re: Größe der VBA-Datei

    Freut mich zu hören, dass es funktioniert hat!

    Gruß,
    Herbert

  5. #5
    Join Date
    17.09.2008
    Posts
    14

    Default Re: Größe der VBA-Datei

    Hallo Herbert

    Leider doch nicht ...

    Das Ganze lief zwar einwandfrei hoch, aber viele Steuerelemente ließen sich nicht bedienen. Scheinbar ist folgendes passiert:
    Nach dem Löschen der Projekt.vba, hat der Zenon-Editor beim Starten (mit leerem VBA) alle VBA-Makros (Arbeitsbereich->[Projekt]->Skripting->VBA-Makros) gelöscht, da die ModuleElement.bas zu diesem Zeitpunkt ja leer ist.

    Sogar wenn man diese VBA-Makros vorher auch noch exportiert und dann wieder importiert, hilft das leider nichts, da inzwischen alle (und das sind echt viele) Verknüpfungen von den Steuerelementen auf die VBA-Makros verloren gegangen sind.

    Gibts dafür eine Lösung?

    Grüße
    Robert

  6. #6
    Join Date
    30.05.2007
    Location
    Salzburg
    Posts
    879

    Default Re: Größe der VBA-Datei

    Ja das stimmt... diese Informationen gehen verloren.

    Idee wäre jetzt jene, dass vor dem ganzen Prozedere (also bevor der Editor geschlossen wird) alle Bilder, in welchen Elemente mit VBA-Events (LeftClickUp usw.) projektiert worden sind, diese in .xml zu exportieren.

    Nachdem VBA-seitig bereingt worden ist und alles wieder angelegt worden ist (VBA Formen, Module, thisProject, usw.) diese Bilder wieder importieren. Dies setzt voraus, dass in (Skripting->VBA-Makros) die zuvor bestehenden Events (LeftClickUp usw.) angelegt sein müssen.

    Gruß,
    Herbert

    ps: vielleicht gibt es ja ein Tool irgendwo im Internet, welches ein Defragmentieren von binären Dateien durchführen kann.
    ps2: sollte alles dies nicht funktionieren, dann besteht noch die Möglichkeit ein Projekt-Backup an support@copadata.at zu schicken.

  7. #7

    Daumen hoch Re: Größe der VBA-Datei

    Die "events" selbst können vorher im Editor noch exportiert werden.

    Wenn nach dem Löschen der Dateien aus dem SQL Verzeichnis, und vor dem hineinkopieren der VBA Code, die .vbe Datei im Editor unter "Macro Modules" importiert wird, geht nichts verloren.

    Über den Knoten "VBA Macros" lassen sich die Events zuvor in eine .vbe Datei exportieren:

    Click image for larger version

Name:	ScreenShot1030.jpg
Views:	21
Size:	55.3 KB
ID:	182

    Nach dem Importieren, muss der Code (vorher kopiert) im VBA Editor unter "ModuleElements" wieder eingefügt werden. Der Export / Import gilt nur rein für die Events.
    Last edited by markclemens : 16th March 2009 at 09:47

  8. #8
    Join Date
    17.09.2008
    Posts
    14

    Default Re: Größe der VBA-Datei

    Danke für die Antwort. Bin erst gestern dazu gekommen, es auszuprobieren.

    Ja, das Ex-/Importieren der Makros hat die Verweise gerettet. Wir haben jetzt noch nicht viel getestet, aber im Moment siehts gut aus. Die Datei ist von 27 auf 7 MB geschrumpft, was das Arbeiten schon viel angenehmer macht.

    Vielen Dank, Grüße
    Robert

Similar Threads

  1. pdf datei in runtime anzeigen
    By matthias.zoellner in forum zenon Supervisor
    Replies: 18
    Last Post: 7th January 2016, 14:35
  2. Einzelne Datei nachladen
    By matthias.zoellner in forum zenon Supervisor
    Replies: 2
    Last Post: 18th December 2008, 16:04

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •