Function in anderem Projekt aufrufen

17/02/2010 - 00:06 von Volker Alkemper | Report spam
Hallo liebe Helfer!
Ich möchte gerne von einem VBA-Projekt auf ein anderes zugreifen, aber das
klappt irgendwie nicht.
Mein System:
Windows XP alles aktuell,
Word Professional 2007
Netzwerk mit Server 2008
Ich habe zunàchst eine globale Vorlage (Global.dotm). Diese liegt auf dem
Server im freigegebenen Verzeichnis, Zugriffsrechte im Word sind geregelt. In
dieser Vorlage liegen reichlich Makros, auf die alle zugreifen können.
Nun gibt es eine zweite Vorlage für Qualitàtsmanagement-Dokumente (QM.dotm).
Wenn ich von dieser Vorlage aus Subs der Global.dotm starte, laufen die auch.
Beispiel:
Global.dotm:
Public Sub test()
MsgBox "Test in Global"
End Sub

QM.dotm:
Sub Test()
Application.Run "global.Modul1.test"
End Sub
Sobald ich aber auf eine Function zugreife, geht es nicht mehr:
Global.dotm:
Public Function test2() As Boolean
test2 = True
End Function

QM.dotm:
Sub test2()
Dim a As Boolean
MsgBox Application.Run("Global!Modul1.test2")
End Sub
Der Start von test2 führt zu einem Laufzeitfehler: -2147352573 (80020003)
Der Versuch, einen Verweis auf Global.dotm zu setzen, geht schief, obwohl
Global als erste Möglichkeit angeboten wird: "Angeforderte(r)
Klassenbibliothek oder Assistent ist kein VBA-Projekt."
Merkwürdigerweise ist ein Verweis auf meine Normal.dotm möglich! Der hilft
mir nur nicht weiter, da ich nicht alles in die Normal.dotm packen will!
Ich hoffe, ich habe mich verstàndlich ausgedrückt und warte auf freundliche
Hilfe!

Grüße, Volker
 

Lesen sie die antworten

#1 Hartwig Constien
18/02/2010 - 09:40 | Warnen spam
"Volker Alkemper" schrieb:

Ich möchte gerne von einem VBA-Projekt auf ein anderes zugreifen, aber das
klappt irgendwie nicht...



Hallo Volker,

Application.Run kann nur Makros aufrufen, liefert aber keinen Rückgabewert
und ist deshalb nicht für Funktionsaufrufe einsetzbar.

Das Aufrufen von Funktionen geht aber auch ohne Application.Run etwa so:
Rückgabe = Projektname.Modulname.Funktionsname(Parameter)

Damit Du einen Rückgabewert bekommst, ist ein Verweis auf die globale
Vorlage erforderlich. Warum das bei Dir nicht geht, kann nicht sagen.

Hang loose, Hartwig

Ähnliche fragen