Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
404to408
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
404to408
404to408
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

per VBA Verweis prüfen

per VBA Verweis prüfen
Henri
Hallo,
wie kann ich per VBA prüfen, ob die MS Outlook Object Library aktiviert ist und auch vor allem, ob die Richtige aktiviert ist.
Wenn ich meine Tabelle speichere (unter Excel 2000), dann funktioniert der Verweis logischerweise unter Excel XP nicht mehr, da ja dort MS Outlook 10 Object Library aktiviert sein muss (es steht dann unter Verweise NICHT VORHANDEN: MS Outlook 9 Object Library)
Ich benötige also eine Abfrage:
ist Office 2000 oder XP installiert und
ist die richtige Library auch aktiviert.
Sollte die Falsche aktiv sein, diese deaktivieren.
ein ratloser
Henri

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: per VBA Verweis prüfen
Ulf
Das hast du dir für deine Kenntnisse ja einiges vorgenommen.
Leider hast du ja keinen Code geliefert, wie du Outlook referenzierst.
Eine Möglichkeit, völlig ohne Verweis auszukommen ist, LateBinding
zu verwenden. Ist zwar etwas langsamer, aber das fällt kaum ins Gewicht.
Ulf
AW: per VBA Verweis prüfen
Henri
Hallo Ulf,
das mit den Kenntnissen habe ich mal überhört. Es stimmt, ich kenne mich eher schlecht mit VBA aus. Trotzdem habe ich keine Scheu vor so einem Problem. Und ich habe auch schon einen Ansatz gefunden s.u. Dieser funktioniert unter Excel 2000 problemlos. Leider scheitert aber Excel XP an der Zeile: Set objVBE = ActiveWorkbook.VBProject.References
Was mache ich falsch?
Henri
Option Explicit
Private Const BIBLIO_FILENAME9 As String = "c:\programme\microsoft office\office\msoutl9.olb"
Private Const BIBLIO_FILENAME10 As String = "c:\programme\microsoft office\office10\msoutl.olb"
Private Const BIBLIO_NAME As String = "Outlook"

Private Sub AddReferenceFromFile()
Dim objVBE As Object
Dim oRef As Object
Dim blnFound As Boolean
On Error GoTo err_Handler
Set objVBE = ActiveWorkbook.VBProject.References
For Each oRef In objVBE
If UCase(oRef.Name) = UCase(BIBLIO_NAME) Then
blnFound = True
Exit For
End If
Next
If Application.Version = "9.0" Then
If Not blnFound Then
objVBE.AddFromFile BIBLIO_FILENAME9
End If
ElseIf Application.Version = "10.0" Then
If Not blnFound Then
objVBE.AddFromFile BIBLIO_FILENAME10
End If
Else
Resume exit_Sub
End If
exit_Sub:
Set objVBE = Nothing
On Error GoTo 0
Exit Sub
err_Handler:
MsgBox "Fehler beim Laden der Bibliothek"
Resume exit_Sub
End Sub

Anzeige
AW: per VBA Verweis prüfen
Ulf
Ich bin nur von dem angegebenen Level ausgegangen, sorry, wenn dich
das schmerzt.
Der Code ist ja eigentlich ok und läuft auch. Nur ein Denkfehler ist
dabei. Wenn die Excelversion 10 ist, heiß das noch lange nicht, dass
auch die restliche Office- Version 10 ist, oder?
Bei mir ist z.B. Excel 2002 und 2003 installiert, das restliche Office
ist noch immer 2000.
Ulf
AW: per VBA Verweis prüfen
Henri
Hallo Ulf,
no Problem, ich seh das locker.
Das mit den Versionen hatte ich mir auch überlegt. Ist aber jetzt nicht von hoher Priorität, da unsere PC automatisch installiert werden und da wird immer ein Office Paket komplett drauf gepackt.
Vermeiden könnte man das aber in dem man nicht "Application.Version" benutzt sondern "keine Ahnung was ... Outlook.Version ... oder so".
Hast du da eine Idee?
Und mein Problem mit Set objVBE = ActiveWorkbook.VBProject.References
habe ich auch noch nicht lösen können.
danke trotzdem
Henri
Anzeige
AW: per VBA Verweis prüfen
Ulf
Hab keinen Plan, was da bei dir zickt. Wie gesagt, bei mir läuft dein
Code und der Verweis wird gesetzt. Eine Änderung hatte ich allerdings,
die damit aber nichts zu tun haben sollte.
If Val(Application.Version) = 9 Then
....
ElseIf Val(Application.Version) = 10 Then
....
End If
läßt nur Ganzzahlen passieren.
Hast du mal über die Möglichkeit LateBinding nachgedacht?
Ulf
Ulf
AW: per VBA Verweis prüfen
Henri
Morgen Ulf,
habe deine Änderung übernommen.
Probier doch mal bei deinem Excel XP folgendes aus:
Kommentiere die Zeile On Error GoTo err_Handler aus und lass das Makro noch einmal durchlaufen. Du wirst feststellen, dass an der Stelle Set objVBE = ActiveWorkbook.VBProject.References das Makro hängen bleibt.
Das passiert aber nicht mit Excel 2000. Ich habe das auch schon mit 2003 probiert und dort gibt es das gleiche Problem.
gruß
Henri
Anzeige
AW: per VBA Verweis prüfen
Ulf
Ich hab gar Kein On Error dringelassen.
Ulf
AW: per VBA Verweis prüfen
05.04.2004 17:29:39
Henri
Hallo Ulf,
ich versteh das nicht. Ich habe das bei Excel XP und 2003 probiert und es kommt jedesmal ein Fehler (ich schau noch einmal genau nach welcher). Bei 2000 passiert nix und alles läuft sauber.
Henri
P.S. wie bekomme ich denn die Private Sub automatisch beim Start ausgeführt?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige