Anzeige
Archiv - Navigation
1204to1208
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

noch mal: VBA Verweise per Code setzen

noch mal: VBA Verweise per Code setzen
Peter
Hallo zusammen,
sorry, wenn ich es noch einmal posten muss. Ich hatte das Häkchen gesetzt "Bei Antworten Email-Info", das hat leider nicht funktioniert. Heute finde ich unter "Deine Beiträge", dass es bereits am selben Tag (26.02.) eine Antwort gab, die aber nicht weiterhilft. Leider ist der Beitrag schon im Forums-Archiv,
und ich finde keine Möglichkeit mehr, darauf zu antworten. Deshalb das Ganze noch mal:
Meine Frage:
________________________________________________
Guten Tag zusammen,
ein von mir geschriebenes Excel-Tool liegt auf dem Server und muss auf meinem Rechner
unter Office 2007 laufen, aber auch bei einer Kollegin unter Office 2010.
Da aus Excel heraus auch Word angesprochen wird, gibt es einen Verweis auf die
Microsoft Word 12.0 Object Library. Wenn meine Kollegin das Tool nutzt, wird stattdessen
automatisch ein Verweis auf die Microsoft Word 14.0 Object Library gesetzt. So weit schön,
dehalb funktioniert bei ihr ja auch alles. Wenn ich das Tool danach benutzen will, geht's nicht,
weil auf meinem Rechner natürlich die 14er Version nicht gefunden wird.
Nun wollte ich als Ereignisprozedur beim Öffnen den richtigen Verweis setzen. Hier ein Ausschnitt
aus dem Code:
sLink1 = "C:\Programe\Microsoft Office\Office12\MSWORD.OLB"
sLink2 = "C:\Programme\Common Files\Microsoft Shared\Office14\MSO.DLL"
Select Case pc
Case "PKS-NB01"
On Error Resume Next
ThisWorkbook.VBProject.References.Remove _
ThisWorkbook.VBProject.References(sLink2)
ThisWorkbook.VBProject.References.AddFromFile sLink1
Case "JZH-NB01"
On Error Resume Next
ThisWorkbook.VBProject.References.Remove _
ThisWorkbook.VBProject.References(sLink1)
ThisWorkbook.VBProject.References.AddFromFile sLink2
End Select
Leider funktioniert das nicht. Es gibt keine Fehlermeldung, aber das Ändern der Verweise hat auch
nicht stattgefunden.
Vielen Dank für jeden guten Rat.
Peter
______________________________________
Antwort von ransi:
HAllo
unter Office 2007 laufen
Dann solltest du auch unter 2007 programmieren.
Arbeite mit Late Binding.
DAnn hast du die Problem nicht.
z.B. so:
Dim appWd as object
set appWd =createobject("Word.Application")
Schon ist der Verweis auf Word gesetzt.
ransi
____________________________________________
Dazu ist zu sagen: ja klar, ich skripte unter 2007. Beim Vorschlag von ransi ist es aber doch so,
dass das "CreateObject" erst zur Laufzeit wirksam wird. Folgerichtig meckert Excel schon beim
Kompilieren, dass es im Code Objekte gibt, die unbekannt sind, wie z.B. wdDialogFileSaveAs etc.
Ich glaube also nach wie vor, dass vor der Ausführung eines Codes, der Word-Objekte verwendet,
der entsprechende Verweis auf die richtige Bibliothek gesetzt sein muss. Dazu bitte ich noch mal um
Hilfe.
Vielen Dank und Gruß
Peter

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: noch mal: VBA Verweise per Code setzen
08.03.2011 11:02:05
Nepumuk
Hallo,
beim setzen von Verweisen ist es 1. notwendig das das Projekt nicht mit einem Kennwort geschützt ist und 2. das der User den Zugriff auf das VBA-Projekt frei gibt. Wenn du mit deinem Programm fertig bist und es schützen willst, oder der User den Zugriff nicht freigegeben hat funktioniert das ganze nicht mehr und du kannst von vorne anfangen. Spar dir das und mach es so wie ransi vorgeschlagen hat.
wdDialogFileSaveAs ist eine Konstante und hat den Wert 84. Ersetze die Bezeichnung mit dem Wert oder definiere die Konstante in Excel.
Gruß
Nepumuk
AW: noch mal: VBA Verweise per Code setzen
08.03.2011 12:44:02
Peter
Hallo Nepumuk,
danke für deine Antwort.
1. Das Projekt ist nicht geschützt (in diesem Fall nicht nötig)
2. Was meinst du damit, dass der User den Zugriff auf das VBA-Projekt freigibt?
Kann mir nicht vorstellen, dass du damit allgemein das Zulassen der Ausführung von Makros
meinst (sonst hätte das Ganze ja eh keinen Sinn). Kann man als User explizit den Zugriff auf
das Projekt erlauben oder verweigern? Wenn ja, wo?
Ich frage deshalb, weil mir die korrekt gesetzten Verweise da doch einfacher erscheinen, als alle
möglichen Stellen irgendwie anders zum Laufen zu bringen.
Müsste denn der von mir angegebene Code mit ... References.Remove und ... References.AddFromFile
grundsätzlich funktionieren, wenn der Zugriff auf das VBA-Projekt freigegeben ist?
Gruß
Peter
Anzeige
AW: noch mal: VBA Verweise per Code setzen
08.03.2011 12:52:53
Peter
Sorry, kann ja selber googeln. Die Freigabe habe ich gefunden, im Vertrauensstellungscenter.
Der Haken bei "Zugriff auf das VBA-Projektobjektmodell vertrauen" war bei mir schon gesetzt,
von daher hätte es gehen müssen.
Noch jemand eine Idee?
Danke
Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge