Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Externes Makro durch Makro starten

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Joker15 an!   Senden Sie eine Private Message an Joker15  Schreiben Sie einen Gästebucheintrag für Joker15

Beiträge: 22
Registriert: 09.06.2015

SolidWorks 2013

erstellt am: 21. Aug. 2015 08:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Christoph Weise an!   Senden Sie eine Private Message an Christoph Weise  Schreiben Sie einen Gästebucheintrag für Christoph Weise

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Joker15 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von StefanNie an!   Senden Sie eine Private Message an StefanNie  Schreiben Sie einen Gästebucheintrag für StefanNie

Beiträge: 74
Registriert: 07.03.2005

SW2023 SP3.0 mit
DBWorks R23

erstellt am: 21. Aug. 2015 12:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Joker15 10 Unities + Antwort hilfreich

Zeilenbeispiel innerhalb eines SW-Makros:

boolstatus = swApp.RunMacro("C:\temp\macro1.swp", "macro1", "Main")

------------------
Stefan

CSWP 2006

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Joker15
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Joker15 an!   Senden Sie eine Private Message an Joker15  Schreiben Sie einen Gästebucheintrag für Joker15

Beiträge: 22
Registriert: 09.06.2015

SolidWorks 2013

erstellt am: 21. Aug. 2015 12:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Habs hinbekommen! Super!
Vielen Dank! 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

DanTheMan92
Mitglied



Sehen Sie sich das Profil von DanTheMan92 an!   Senden Sie eine Private Message an DanTheMan92  Schreiben Sie einen Gästebucheintrag für DanTheMan92

Beiträge: 13
Registriert: 18.04.2018

erstellt am: 04. Apr. 2019 16:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Joker15 10 Unities + Antwort hilfreich

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)


Sehen Sie sich das Profil von Christian_W an!   Senden Sie eine Private Message an Christian_W  Schreiben Sie einen Gästebucheintrag für Christian_W

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Joker15 10 Unities + Antwort hilfreich

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz