Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1152to1156
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

VBA Verweise sicherstellen

VBA Verweise sicherstellen
KLE
Hallo,
...ich habe eine Userform unter 2007 erstellt. Diese verwendet einige Verweise auf DLLs (Extras_Verweise). Nun möchte ich die Datei weitergeben an Kollegen...wie kann ich sicherstellen, dass die Datei auch bei ihnen läuft, dass heißt die Verweise auch funktionieren ?
Kann man die DLL-Dateien auch per Hand mit ins Datei-Verzeichnis packen und die Verweise darauf beziehen lassen ?
Was passiert z.B. wenn man ein Outlook-Verweis verwendet - der andere PC aber nicht Outlook sondern Thunderbird o.ä. verwendet - gibt es da irgendwas - damit die EMail, Kontakt, Aufgaben und Kalenderfunktionen auch funktionieren ? (Zumindest das versenden von Emails !)
Gruß und Danke
Kay

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Verweise sicherstellen
05.05.2010 14:58:58
mumpel
Hallo!
Wenn jemand kein Outlook verwendet dann kann er auch die Elemente nicht nutzen. Denn TB ist nicht aus VBA heraus steuerbar. Anstelle von Early-Binding solltest Du Late-Binding nutzen (siehe Forenarchiv). Dann kannst Du prüfen ob auf dem Rechner Outlook installiert ist und bei fehlendem Outlook einen entsprechenden Hinweis ausgeben. Das Senden von Emails kannst Du über die integrierte "Senden an"-Funktion veranlassen.
Gruß, René
AW: VBA Verweise sicherstellen
05.05.2010 15:06:34
KLE
Hallo René,
danke, das mit dem Kein Outlook - keine Funktionalität habe ich mir gedacht. "Senden an" - Funktion sollte machbar sein. Aber ich verstehe das mit dem "Late-Binding" nicht.
Habe "Late-Binding" in der Forum-Suche eingeben - aber ohne Erfolg...kannst Du mir ein Link einstellen, bzw. sagen - wie ich es finden kann ?
Danke und Gruß
Kay
Anzeige
Verweise auf DLL per VBA erstellen
05.05.2010 15:10:28
NoNet
Hallo Kay,
grundsätzlich kannst Du Verweise auch erst zur VBA-Laufzeit erstellen, z.B. mit diesem Makro beim Öffnen der Mappe auf eine DLL, die im gleichen Verzeichnis liegt :
Private Sub Workbook_Open()
On Error Resume Next
Application.VBE.ActiveVBProject.References.AddFromFile ThisWorkbook.Path & "\Deine.DLL"
End Sub
Allerdings stellt sich viel eher die Frage, ob diese DLL auch 100% auf dem Zielrechner läuft (evtl. Windows-/Office-Versionsabhängig ?), ob sie evtl. bereits in einer anderen Version geladen ist (das könnte man zuvor prüfen) und ob es Abhängigkeiten zu anderen Bibliotheken gibt.
Was NICHT funktioniert : Wenn Du Deinen VBA-Code auf Outlook-Objekte/Klassen/Methoden/Eigenschaften aufgebaut hast, einfach auf einen anderen Mailclient auszuweichen wenn Outlook nicht installiert ist - das müsste man zuvor im Einzelfall prüfen :
Sub TesteOutlookReferenzierungPerActiveX()
Dim objOutlook As Object
On Error Resume Next
Set objOutlook = CreateObject("Outlook.Application")
If Err = 0 Then
MsgBox "Outlook erfolgreich referenziert !"
objOutlook.Quit 'Outlook Prozess wieder schließen
Else
MsgBox "Outlook nicht erfolgreich referenziert !" & vbLf & vbLf & _
"Fehler Nr. " & Err.Number & vbLf & Err.Description
End If
End Sub
Alternativ müsstest Du dann eine andere Klasse referenzieren (Thunderbird, Lotus Notes etc.) und die Programmierung davon abhängig machen, welche Referenzierung erfolgreich war !
Informiere Dich bitte auch über das Thema "Early Binding / Late binding" , z.B. hier :
http://www.online-excel.de/excel/singsel_vba.php?f=85
Gruß, NoNet
Anzeige
AW: Verweise auf DLL per VBA erstellen
05.05.2010 15:16:00
mumpel

grundsätzlich kannst Du Verweise auch erst zur VBA-Laufzeit erstellen,
z.B. mit diesem Makro beim Öffnen der Mappe auf eine DLL,
die im gleichen Verzeichnis liegt 
Das funktioniert aber nur, wenn die Datei zuvor mit "regsvr32.exe" am System registriert wurde.
RegSvr32 nicht unbedingt notwendig
05.05.2010 15:34:26
NoNet
Hallo Mumpel,
wenn mich nicht alles täuscht, ist die Registrierung der DLL mittels regsvr32 nur dann notwendig, wenn Du den Verweis über eine GUID einbinden möchtest, aber nicht per .AddFromFile !
Meine Hand würde ich dafür nicht verwetten, aber ich erinnere mich, dass ich das auch schon gemacht habe...
Gruß, NoNet
Anzeige
AW: RegSvr32 nicht unbedingt notwendig
05.05.2010 15:47:02
mumpel
Darauf würde ich auch nicht wetten. Da hilft nur ausprobieren.
AW: VBA Verweise sicherstellen
05.05.2010 16:05:25
KLE
Hallo zusammen,
...vielen Dank für den Link und die Erklärung mit Outlook & Co. ! Werde mich in den nächsten Tagen ran machen und versuchen etwas "geeignetes" zu finden und dann mein Feedback hier einstellen.
Wichtig war für mich nur die Einbindung verschiedener Verweise wie z.B.: Ref edit Control, ohne die einige Funktionen nicht laufen, bzw. mit Fehlermeldungen die Userform stoppen.
Mit Send to ist das Thema Outlook auch gelöst... Kontakte und Termine muss ich schauen, werde es so einrichten, das geprüft wird ob Outlook vorhanden, dann soll es arbeiten, ansonsten einfach die Buttons "Kontakte/Termine/Aufgaben" ausblenden...so sieht der User erstgarnicht, was er versäumt ;o)
Danke und Gruß ins Forum
Kay
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige