none
VBE.ActiveVBProject Save? gibts da was? RRS feed

  • Frage

  • Hallo,

    ich arbeite mit VBA in Solidworks API und habe stehe jetzt voreinem Problem.

    Ich habe es geschaft das unter gewissen Vorraussetzungen ein Modul gelöscht wird.

    mit:

    Dim vbComponent As Object
    Set vbComponent = Application.VBE.ActiveVBProject.VBComponents
    vbComponent.Remove vbComponent:=vbComponent.Item("Modul2")
    

    so jetz fragt er aber am Ende des Makros ob er die Änderung speichern soll.

    am liebsten wäre es mir das Aktive Projekt speichert sich selbst.

    vbComponent SaveAs("H:\Macro1.swp")
    Das funktioniert aber so nicht.

    gruß LennyBAM

    Montag, 17. Dezember 2012 12:10

Alle Antworten

  • Keine Chance, innerhalb von VBA ist das Speichern des Projektes der Application vorbehalten.

    Das VBproject hat zwar eine Saved property, die ist aber schreibgeschützt und die SaveAs methode ist nicht gültig, sprich nicht verwendbar.

    Ich hab auch Solidworks, warum willst Du denn ein Modul löschen??

    Andreas.

    Donnerstag, 20. Dezember 2012 11:34
  • Hallo Andreas,

    ich wollte ein makro machen das sich selbst Konstante hinterlegt und bei bedarf bei Null beginnt in dem

    es die Konstanten in ein Extra-Modul schreibt und dann eben auch wieder löscht.

    Das Makro sollte sich selbst Werte hinterlegen.

    Vergleichbar einem Zähler für die Anzahl der Aufrufe.

    In Excel funktioniert sowas durch das Save Objekt ganz gut.



    • Bearbeitet LennyBAM Donnerstag, 20. Dezember 2012 12:49
    Donnerstag, 20. Dezember 2012 12:39
  • Versteh ich nicht. Eine Konstante ist eine Zahl, also geht es wohl um Daten.

    Für Daten sind Dateien da, wieso schreibst Du die da nicht rein?

    Würde den Vorteil bieten das sich die Datendatei a.) sichern und b.) auch mit einem anderen Editor öffnen und bearbeiten lässt und c.) das sich Dein Makro nicht durch irgendeinen Sicherheitskonflikt selbst zerlegt, in Codesegmente schreiben darf ein normaler User nicht... macht das keinen Sinn?

    Andreas.

    Donnerstag, 20. Dezember 2012 14:57
  • Hallo Andreas,

    was für Datenfiles schlägst du denn da vor? Kann ich txt files schreibschützen und mit

    Indexen versehen?

    Ich bräuchte etwas das am besten nur mit windows und der SWX-API funktioniert.

    lenny


    • Bearbeitet LennyBAM Freitag, 21. Dezember 2012 09:05
    Freitag, 21. Dezember 2012 09:04
  • was für Datenfiles schlägst du denn da vor?

    Kann ich nicht sagen, hängt davon ab wozu das überhaupt gut sein soll, was Du noch nicht erzählt hast. :-)

    Du kannst Daten in der Registry ablegen, geht direkt mit VBA.SaveSetting

    Du kannst Daten in INI files ablegen, geht mit Windows API WritePrivateProfileString

    Du kannst Variablen direkt binär in Files schreiben, geht mit direkt mit VBA Open,Put,Get,Close

    Spielt das so eine große Rolle was für eine Datei das ist? Die SWX-Api bietet nur Zugriff rein für SW, damit kannst Du nix machen.

    Andreas.

    Samstag, 22. Dezember 2012 14:02