vba: Aufruf von Prozeduren in anderen Dokument

21/07/2008 - 07:49 von msnews.microsoft.com | Report spam
Hallo,

folgendes Problem:
ein Visio Projekt wird stàndig erweitert und von mehreren Leuten benutzt.
Daher ist es notwendig eine einfache methode zum Updaten des Codes zu
realisieren.

die MSDN beschreibt das wie folgt:
-
Quelle: http://msdn.microsoft.com/de-de/lib...x#ID0EOEAE
12. Verteilung und Wartung einer Visio-Lösung
Die Verteilung gestaltet sich im Fall einer VBA-basierten Lösung einfach:
man kopiert die Visio-Zeichnungsdatei (die den Code enthàlt) und ggf. die
Schablone(n) auf den/die Zielrechner.
Das Problem, dass der VBA-Code bei bereits erstellten Zeichnungen ja
nachtràglich nur schwer zu àndern ist, umgeht man dadurch, dass der Code in
die Schablonendatei (die auch ein verstecktes Zeichenblatt hat) einlagert.
Somit updatet jedes Schablonenupdate auch automatisch alle Quellcodes.
Die Ablage von Informationen in der Registry ist nicht zu empfehlen, da ja
nicht unbedingt eine klassische Installation stattfindet und daher nötige
Eintràge in der Registry nicht zwangslàufig vorhanden sind.

-

Ein Großteil des Codes reagiert auf das Event "Document_ShapeAdded(ByVal
Shape As IVShape)" und da liegt das Problem:

Wie rufe ich nun die Prozeduren im verstecktem Dokument in der Schablone
auf? Habe leider keine entsprechenden Infos für Visio gefunden



hier einige meiner erfolglosen Versuche (lt.: Wikibooks - übergreifende
Prozeduraufrufe in Excel
http://de.wikibooks.org/wiki/VBA_in...Grundlagen:_Prozeduraufrufe)

Run [ProjektInSchablone.vbp].Prozedurname(Parameter)
od.

call [ProjektInSchablone.vbp].Prozedurname(Parameter)

od.

Call [ProjektInSchablone.vbp].[Modulname].Prozedurname(Parameter)
od.

Run [ProjektInSchablone.vbp].[Modulname].Prozedurname(Parameter)



Bitte um Hilfe und Dankeschön im Voraus

Martin Entner

(ich verwende Visio2003 sp3)
 

Lesen sie die antworten

#1 Senaj Lelic [DE MVP Visio]
21/07/2008 - 14:36 | Warnen spam
Hallo,

mach mal folgendes:

Erzeuge eine Schablone mit einer Prozedur.
dann öffne eine Visio-Datei und gehe auch da in VBA, dann wàhle Extras->
Verweise (im VBA-Entwicklungsfenster) und wàhle die SChablone aus als
Referenz.
Danach solltest Du die Prozedur (achtung die muss public deklariert sein)
direkt aufrufen können.

Szenario:
Visio-Datei (Zeichnung1.vsd) mit einer Prozedur namens "versuch"
Visio-Schablone (Schablone2.vss) mit einer Prozedur namens "test"
ACHTUNG: beide Dateien müssen gespeichert worden sein

dann kann man den Aufruf direkt über
Schablone2.ThisDocument.test

in der Prozedur "versuch" aufrufen


Senaj Lelic
DE MVP Visio

"msnews.microsoft.com" schrieb im Newsbeitrag
news:
Hallo,

folgendes Problem:
ein Visio Projekt wird stàndig erweitert und von mehreren Leuten benutzt.
Daher ist es notwendig eine einfache methode zum Updaten des Codes zu
realisieren.

die MSDN beschreibt das wie folgt:
-
Quelle: http://msdn.microsoft.com/de-de/lib...x#ID0EOEAE
12. Verteilung und Wartung einer Visio-Lösung
Die Verteilung gestaltet sich im Fall einer VBA-basierten Lösung einfach:
man kopiert die Visio-Zeichnungsdatei (die den Code enthàlt) und ggf. die
Schablone(n) auf den/die Zielrechner.
Das Problem, dass der VBA-Code bei bereits erstellten Zeichnungen ja
nachtràglich nur schwer zu àndern ist, umgeht man dadurch, dass der Code
in die Schablonendatei (die auch ein verstecktes Zeichenblatt hat)
einlagert. Somit updatet jedes Schablonenupdate auch automatisch alle
Quellcodes.
Die Ablage von Informationen in der Registry ist nicht zu empfehlen, da ja
nicht unbedingt eine klassische Installation stattfindet und daher nötige
Eintràge in der Registry nicht zwangslàufig vorhanden sind.

-

Ein Großteil des Codes reagiert auf das Event "Document_ShapeAdded(ByVal
Shape As IVShape)" und da liegt das Problem:

Wie rufe ich nun die Prozeduren im verstecktem Dokument in der Schablone
auf? Habe leider keine entsprechenden Infos für Visio gefunden



hier einige meiner erfolglosen Versuche (lt.: Wikibooks - übergreifende
Prozeduraufrufe in Excel
http://de.wikibooks.org/wiki/VBA_in...Grundlagen:_Prozeduraufrufe)

Run [ProjektInSchablone.vbp].Prozedurname(Parameter)
od.

call [ProjektInSchablone.vbp].Prozedurname(Parameter)

od.

Call [ProjektInSchablone.vbp].[Modulname].Prozedurname(Parameter)
od.

Run [ProjektInSchablone.vbp].[Modulname].Prozedurname(Parameter)



Bitte um Hilfe und Dankeschön im Voraus

Martin Entner

(ich verwende Visio2003 sp3)


Ähnliche fragen