Hallo.
Ich will zur automatischen Ablage und Versionierung einer Office-Datei ein VBA Add-In/Plugin/Makro in Excel _und_ Word einbinden. Momentan habe ich ein ein XLA geschrieben - so funktioniert es generell mal, aber wie mache ich das bei Word… wll? Wegen des Aufwand, wäre es mir lieber, wenn ich nur eine Datei pflegen müsste.
Kann ich es dann (einfach) erreichen, dass ich in meinem „Makro“ zusätzlich zur Symbolleiste auch einen Eintrag in der „Menüleiste“ neben Datei, Bearbeiten, Ansicht, etc… entsteht?
Vielen Dank für Eure Hilfe!
Hi Manuel,
Ich will zur automatischen Ablage und Versionierung einer
Office-Datei ein VBA Add-In/Plugin/Makro in Excel _und_ Word
einbinden. Momentan habe ich ein ein XLA geschrieben - so
funktioniert es generell mal, aber wie mache ich das bei
Word… wll?
mein Problem ist, ich kenne Word-Vba nicht. Und du sagst es funktioniert generell, dann sagts du in Word funktioniert es nicht, was gilt denn nun?
In Excel-Vba könntest du mit Application.Name herausfinden ob du grad in Excl bist, dann, wenn das in Word-Vba genauso klappt, mittels # bzw. #define, (weiß grad nicht wie das genau geht, aber es geht, schon getestet) nur den Code kompilieren lassen der halt jeweils nur für Excel bzw. Word gilt.
Kann ich es dann (einfach) erreichen, dass ich in meinem
„Makro“ zusätzlich zur Symbolleiste auch einen Eintrag in der
„Menüleiste“ neben Datei, Bearbeiten, Ansicht, etc…
entsteht?
Ich weiß nicht genau was du mit einfach meinst, in Excel geht das, nehme an in Word auch, per Code ein neues Symbol zu erzeugen, oder z.B. im Menue Bearbeiten einen neuen Unterpunkt zum Anklicken zu erzeugen.
Gruß
Reinhard
Hallo Reinhard.
Danke für deine schnelle Antwort.
Ich möchte auf ein paar Dinge eingehen:
mein Problem ist, ich kenne Word-Vba nicht. Und du sagst es
funktioniert generell, dann sagts du in Word funktioniert es
nicht, was gilt denn nun?
Ich habe es für Excel geschrieben und daher nur dort getestet… das Prinzip müsste auch unter Word funktionieren und soweit ich weiß unterscheidet sich Word-VBA kaum zu Excel-VBA.
In Excel-Vba könntest du mit Application.Name herausfinden ob
du grad in Excl bist, dann, wenn das in Word-Vba genauso
klappt, mittels # bzw. #define, (weiß grad nicht wie das genau
geht, aber es geht, schon getestet) nur den Code kompilieren
lassen der halt jeweils nur für Excel bzw. Word gilt.
Das hilft schon mal - bleibt noch die Frage in welchem Format ich das dann in beiden Programmen „installieren“ kann.
Ich weiß nicht genau was du mit einfach meinst, in Excel geht
das, nehme an in Word auch, per Code ein neues Symbol zu
erzeugen, oder z.B. im Menue Bearbeiten einen neuen Unterpunkt
zum Anklicken zu erzeugen.
Genau dort oben einen eigenen Punkt erstellen. Dass es geht sehe ich z.B. nach der Installation von Acrobat. Meine Frage, die ich so leider nicht gestellt habe, ist wie!
Gruß
Reinhard
Manuel
Hi Manuel,
mein Problem ist, ich kenne Word-Vba nicht. Und du sagst es
funktioniert generell, dann sagts du in Word funktioniert es
nicht, was gilt denn nun?
Ich habe es für Excel geschrieben und daher nur dort
getestet… das Prinzip müsste auch unter Word funktionieren
und soweit ich weiß unterscheidet sich Word-VBA kaum zu
Excel-VBA.
naja, ich sehe da gewaltige Unterschiede. Warum hast du es in Word nicht getestet, bzw. was kam dabei raus und überhaupt, wo ist der Code?
In Excel-Vba könntest du mit Application.Name herausfinden ob
du grad in Excl bist, dann, wenn das in Word-Vba genauso
klappt, mittels # bzw. #define, (weiß grad nicht wie das genau
geht, aber es geht, schon getestet) nur den Code kompilieren
lassen der halt jeweils nur für Excel bzw. Word gilt.
Das hilft schon mal - bleibt noch die Frage in welchem Format
ich das dann in beiden Programmen „installieren“ kann.
Sorry, was meinst du mit Format? Aufgrund der Abfrage nach der Application, also der laufenden Anwendung wird je nachdem nur Bestimmtes kompiliert!?
Genau dort oben einen eigenen Punkt erstellen. Dass es geht
sehe ich z.B. nach der Installation von Acrobat. Meine Frage,
die ich so leider nicht gestellt habe, ist wie!
In Excel geht das easy, nur, bin hier im Internetcafe, und so ausm Kopp, nö, so fit bin ich dann doch nicht:smile:
Den Code um ein Symbol zu erzeugen und auch mit einem Makro zu belegen, da muß ich zuhause nachschauen und da hab ich kein Internet. C’est la vie, also kanns dauern.
Gruß
Reinhard
hallo
im word geht es relativ leicht, ein plugin zu erstellen: eine neue dokumentvorlage erzeugen (*.dot), den makrocode dort reinkopieren, die dot-datei ins startup-verzeichnis von word kopieren, fertig.
das startup-verzeichnis von word liegt normalerweise unter c:\dokumente und einstellungen\anwendungsdaten\microsoft\word\startup.
jede dot-datei, die in diesem verzeichnis liegt, wird beim starten von word automatisch geladen (ähnlich wie die normal.dot). damit sind alle makros, die in dieser vorlage definiert sind, global verfügbar. aber auch textbausteine, angepasste symbolleisten etc.
wenn deine excel-makros mit vba programmiert sind, dürfte das umstellen auf word-makros recht leicht sein: das vba ist das selbe, die vba-objekte sind genau die selben, lediglich das word-spezifische objektmodel schaut doch recht anders aus als das von excel, teilweise aus notwendigkeit (sind ja grundverschiedene anwendungen) teilweise aber auch, weil einfach zwei entwicklerteams daran gebaut haben.
falld du spezielle probleme hast, dann poste doch mal den excel-vba-code, den du auf word-vba-code umgebaut haben willst. ev. kann ich dir dabei helfen.
lg
erwin
Hallo Erwin.
Dass es so geht dachte ich mir - ich suche aber nach einer Lösung bei der ich nur eine einzige Datei pflegen muss und die in Excel und in Word dann funktioniert… gibt es so was?
Danke,
Manuel
hi Manuel
ganz so leicht geht es nicht - word und excel sind sich zwar schon ziemlich ähnlich, stammen aber nach wie vor von zwei entwicklerteams und haben daher ihre eigenheiten.
das eleganteste wäre: mit visual basic eine eigene com-dll schreiben, die sowohl mit excel als auch mit word kann. diese dann entsprechend registrieren. dann nur mehr minimale word- bzw. excel-makros, die nur mehr den com-aufruf beinhalten. man muss zwar immer noch seperate add-ins für word und excel erstellen, der hauptcode liegt aber in einem zentralen projekt.
natürlich kann man auch jede andere sprache verwenden, vb bietet sich aber an, da du ja schon mit vba programmierst und vb dem sehr ähnlich ist.
lg
erwin