| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| SOLIDWORKS in der Prozesskette Blech – Teil 2 |
Autor
|
Thema: Externes Makro durch Makro starten (2253 mal gelesen)
|
Joker15 Mitglied Konstrukteur
Beiträge: 22 Registriert: 09.06.2015 SolidWorks 2013
|
erstellt am: 21. Aug. 2015 08:39 <-- editieren / zitieren --> Unities abgeben:
Hallo, Ich plane eine Makrobibliothek und wollte fragen, wie und ob es denn möglich ist über ein Macro (CommandButton in Userform) ein Macro zu öffnen welches in einem externen Pfad hinterlegt ist? Von der Idee her wie folgender Code... Code: Private Sub CommandButton1_Click() Application.Run "C:\Test\Gesamtmasse_Profilteile_aus_Stueckliste.swp" End Sub
... nur funktioniert das so nicht! Gruß Joker! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christoph Weise Mitglied Technischer Produktdesigner / Konstruktion / CAD-Admin
Beiträge: 204 Registriert: 22.03.2015 Dell 3650 Intel I7 11700k 32 GB RAM Nvidia RTX A4000 16GB Win 10 22H2 64-bit SolidWorks 2022SP5 QuickPress 6.3.3 PortaX 2.27 SAP ERP 6.0
|
erstellt am: 21. Aug. 2015 09:26 <-- editieren / zitieren --> Unities abgeben: Nur für Joker15
Hallo Joker, leider ist es nicht ganz so einfach ein Makro von extern per Code zu starten. Aber SolidWorks bietet hier die RunMacro2Method in der Api Hilfe an. Hier das Beispiel aus der Hilfe: Hier die Dekleration Code: Function RunMacro2( _ ByVal FilePathName As System.String, _ ByVal ModuleName As System.String, _ ByVal ProcedureName As System.String, _ ByVal Options As System.Integer, _ ByRef Error As System.Integer _ ) As System.Boolean
Und hier die Anwendung
Code: Dim instance As ISldWorks Dim FilePathName As System.String ' Pfad der Datei Dim ModuleName As System.String ' Name des Moduls Dim ProcedureName As System.String ' Name des Subs Dim Options As System.Integer Dim Error As System.Integer Dim value As System.Boolean value = instance.RunMacro2(FilePathName, ModuleName, ProcedureName, Options, Error)
Genaueres Beispiel ist in der Api Hilfe zu finden. Gruß Christoph ------------------ Wer einen Fehler findet darf ihn behalten, wer zwei findet kann beide behalten, ab fünf Fehler gibs Rabatt :-) [Diese Nachricht wurde von Christoph Weise am 21. Aug. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanNie Mitglied Konstrukteur und CAD-Administrator
Beiträge: 74 Registriert: 07.03.2005 SW2023 SP3.0 mit DBWorks R23
|
erstellt am: 21. Aug. 2015 12:42 <-- editieren / zitieren --> Unities abgeben: Nur für Joker15
|
Joker15 Mitglied Konstrukteur
Beiträge: 22 Registriert: 09.06.2015 SolidWorks 2013
|
erstellt am: 21. Aug. 2015 12:47 <-- editieren / zitieren --> Unities abgeben:
|
DanTheMan92 Mitglied
Beiträge: 13 Registriert: 18.04.2018
|
erstellt am: 04. Apr. 2019 16:08 <-- editieren / zitieren --> Unities abgeben: Nur für Joker15
Hallo zusammen, der Baustein funktioniert soweit und ist verständlich. Nur wie erzeuge und übergebe ich den letzten Parameter also den Fehlercode? Ich möchte im aufgerufenen Macro eine Userinterruption einfügen, die ich dann im Hauptmacro verwenden kann um dieses abzubrechen. Vielen Dank! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 05. Apr. 2019 11:08 <-- editieren / zitieren --> Unities abgeben: Nur für Joker15
Zitat: … wie erzeuge und übergebe ich den letzten Parameter also den Fehlercode? Ich möchte im aufgerufenen Macro eine Userinterruption einfügen, die ich dann im Hauptmacro verwenden kann um dieses abzubrechen.
Hallo, wie ich es verstanden habe, erzeugt den Fehlercode vba selber, um einzugrenzen, warum der Aufruf nicht geklappt hat. Als Ergänzung zum direkten Rückgabewert, der nur ja/nein liefert. Einen eigenen Wert zu übergeben sehe ich da nicht. Etwas umständlich wäre vielleicht eine Textdatei, auf die beide Makros zugreifen. Gruß, Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |