Verweise XL-XP u. XL-2000

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Verweise XL-XP u. XL-2000
von: Darko
Geschrieben am: 25.09.2003 15:36:02

Ich habe in Excel XP eine Arbeitsmappe mit Makros erstellt, welche Verweise auf Outlook und WORD-Bibliotheken benötigen. Wenn ich die Mappe dann unter 2000 öffne bekomme ich bei bestimmten Funktionen Fehler. Liegt an den nicht vorhandenen Outlook 10.0 Bibliotheken !
Wenn ich diese nicht vorhandenen Bibliotheken unter "Verweise" entferne und die 9.0-Bibliotheken einbinde, dann tut alles. Öffne ich dann die Mappe in Excel XP so ändert XP die Bibliotheken automatisch wieder in 10.0-Versionen. Und danach geht das Spiel wieder von vorne los !

Ich habe versucht zur Laufzeit unter Excel 2000 (Office 2000) diese Bibliotheken zu entfernen, bekomme aber bei dem Befehl:
"MyBay.VBProject.References.Remove MyBay.VBProject.References.Item(9)" einen Fehler:

Laufzeitfehler Nr. xyz
Objektbibliothen nicht registriert !


Wie kann ich solche "verweisten" Verweise per Makro entfernen und die 9.0 Versionen setzen?

Das setzen der Verweise per MAkro funktioniert tadellos, nur das entfernen solcher Verweise, die sich nicht auf dem System befinden klappt nicht!

Kann mir hier jemand weiterhelfen !

Ich möchte das die Excel-Mappe auf beiden Office-Versionen (2000 und XP) lauffähig ist !!!

Bild


Betrifft: AW: Verweise XL-XP u. XL-2000
von: Björn B.
Geschrieben am: 25.09.2003 22:46:17

Hallo Darko,

mangels XP auf meinem Heimrechner kann ich leider nichts programmieren und testen, deshalb nur ein paar Fragen als Anregung.

Reicht es nicht aus den Verweis auf die jeweils aktuelle Outlookversion zu setzen?
Ist es erforderlich den nicht aktuellen Verweis zu löschen?
Wenn das erforderlich ist, könnte dann nicht Dein Makro damit enden, dass es den Verweis entfernt (dann ist der Verweis ja noch nicht "verwaist")?
Die jeweils zu entfernenden Verweise kannst Du, wenn Sie mit der Excel-Version einhergehen über eine if ... then - Bedingung ansteuern, indem Du die Excel-Versionsnummer mit Application.Version abfragst.

Falls Du auf eine Lösung kommst, poste Sie bitte in diesem Thread, ich hätte da nämlich auch Interesse dran.

Gruß
Björn


Bild


Betrifft: AW: Verweise XL-XP u. XL-2000
von: Darko
Geschrieben am: 28.09.2003 10:20:40

Hallo Bjön!

Hab mich mal mit der Materie beschäftigt !
Mein Ziel ist die Arbeitsmappe ohne Probleme unter Office2000 und auch unter Office XP zu bearbeiten und zu speichern, ohne dass es hierbei bemerkbar wird.

Meine Lösung:

Die Arbeitsmappe muss ohne die kritischen Verweise gesspeichert werden, d.h. vor dem Speichern (natürlich nur einmalig) die Verweise auf Outlook und Word entfernen.

Beim start der Arbeitsmappe werden die Verweise hiermit gesetzt:
----------------------
Public Sub CHECKVERSION()
On Error Resume Next
'Gültige Versionen ermitteln und entsprechende Verweise setzen ----------------
If MyBay.Application.Version = "9.0" Or MyBay.Application.Version = "10.0" Then
'Je nach Version - Verweise setzen ---------------------------
If MyBay.Application.Version = "9.0" Then '2000
MyBay.VBProject.References.AddFromGuid "{00062FFF-0000-0000-C000-000000000046}", 9, 0 'Outlook 2000
MyBay.VBProject.References.AddFromGuid "{00020905-0000-0000-C000-000000000046}", 8, 1 'Word 2000
End If
If MyBay.Application.Version = "10.0" Then 'XP
MyBay.VBProject.References.AddFromGuid "{00062FFF-0000-0000-C000-000000000046}", 9, 0 'Outlook XP
MyBay.VBProject.References.AddFromGuid "{00020905-0000-0000-C000-000000000046}", 8, 2 'Word XP
End If
Else
MsgBox "Excel ab Version 9.0 (Excel 2000) erforderlich!", , "Fehler"
MyBay.Close
MyBay.Application.Quit
End If
End Sub

----------------------
Diese Funktion muss beim start automatisch aufgerufen werden.
Hiermit stelle ich sicher, dass die Arbeitsmappe nur unter O-2000 oder O-XP starten kann. Wenn die korrekte Version vorliegt, setzte ich dann - je nach Version - die beiden erforderlichen Verweise (hier sind es Outlook und Word). Wichtig hierbei sind die Versionen der Verweise (Outlook= 9,0 - Word= 8,2 z.B. bei Office XP (10.0).

Nun kann das Dokument mit allen Funktionen bearbeitet werden!

Als zweiten wichtigen schritt müssen diese Verweise beim Schliessen wieder entfernt werden, damit sie Problemlos unter Office-2000 geöffnet werden können.

Dies hab ich so gelöst:
----------------------

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 'On Error Resume Next
 ActiveWorkbook.VBProject.References.Remove ThisWorkbook.VBProject.References("Outlook")
 ActiveWorkbook.VBProject.References.Remove ThisWorkbook.VBProject.References("Word")  
End Sub

-----------------------

Im Arbeitsmappenbereich des Makros gibt es die Funktion "_BeforeClose".
Hier werden die Verweise wieder entfernt. Diese Funktion ist für beide Versionen von Office gültig (also für O2k und OXP).
Somit wird die bearbeitete Mappe wieder ohne Verweise auf Word und Outlook gespeichert und kann nun in jeder beliebigen Version geöffnet werden.


WICHTIG: Unter Excel XP (oder Office XP generell) lassen sich Verweise per Makro nicht standardmäßig setzen. Hierfür muss mann unter "Extras/Makros/Sicherheit" im Register "Vertrauenswürdige Quellen" den Eintrag "Zugriff auf VisualBasic-Projekte vertrauen" auswählen. Sonst kommt ein Sicherheishinweis, und die Verweise werden nicht gesetzt. Somit käme dann auch ein Fehler beim Speichern, weil die zu entfernenden Verweise nicht gesetzt wurden.

Ich hoffe einen guten Tip gegeben zu haben - VBA ist schon ne coole Sache, insbesondere mit Excel.

Grüsse vom Bodensee

DARKO


Bild


Betrifft: AW: Verweise XL-XP u. XL-2000
von: Björn B.
Geschrieben am: 28.09.2003 14:23:17

Hallo Darko,

prima, dass Du Dein Problem lösen konntest und vielen Dank für das Posten Deiner Lösung. Ich werde das in nächster Zeit bestimmt gut gebrauchen können.

Gruß
Björn


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Verweise XL-XP u. XL-2000"