Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
752to756
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
752to756
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Unflexibler DLL Verweis

Unflexibler DLL Verweis
12.04.2006 16:02:42
Achim
Hallo,
ich habe Ärger mit dem folgenden Code, der den Zugriff auf die Prozeduren einer DLL namens 'Test.dll' ermöglicht:
'Declare Sub Sin_P Lib "D:\Test.dll" (ByVal x As Double, y As Double)'
Die Prozeduren funktionieren zwar alle, was mich aber stört ist die Tatsache, dass ich immer den exakten Pfad zur DLL angeben muss. Besser wäre es, wenn ich die DLL immer im gleichen Ordner wie die regieführende Excel Datei legen könnte und dann beim Öffnen der Excel Datei via 'Public Sub Workbook_Open()' der aktuelle Pfad ausgelesen wird und dann die obige Anweisung ersetzt werden könnte durch:
'Declare Sub Sin_P Lib Pfad & "\Test.dll" (ByVal x As Double, y As Double)'
Meine Versuche diesbezüglich waren nicht erfolgreich, da ein konstanter Ausdruck nach 'Lib' erforderlich ist.
Ach ja, die DLL konnte ich übrigens nicht durch das Menü "Verweise" referenzieren (wieso, weiß ich auch nicht).
Weiß jemand Rat? Achim

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

Betreff
Datum
Anwender
Anzeige
AW: Unflexibler DLL Verweis
12.04.2006 18:34:15
ChrisL
Hallo Achim
Verstehe von DLL-Funktionen kaum etwas, aber vielleicht kannst du die gesamte Codezeile mit dem Ansatz "Makro mit Makro bearbeiten" ersetzen (etwas mit VBComponents o.ä.).
Nur eine Idee.
Gruss
Chris
AW: Unflexibler DLL Verweis
13.04.2006 06:45:33
Achim
Hallo Chris,
werde ich mal versuchen...einstweilen habe ich mir eine Krücke ausgedacht:

Private Sub Workbook_Open()
Dim Quell_Pfad As String
Dim Ziel_Pfad As String
Dim Quell_Datei
Dim Ziel_Datei
Ziel_Pfad = Application.Path
Quell_Pfad = ActiveWorkbook.Path
Quell_Datei = Quell_Pfad & "\" & "Test.dll"  ' Name der Quelldatei festlegen.
Ziel_Datei = Ziel_Pfad & "\" & "Test.dll"    ' Name der Zieldatei festlegen.
FileCopy Quell_Datei, Ziel_Datei             ' Quell- in Zieldatei kopieren.
End Sub

Die Routine bezieht sich auf das Workbook, das die DLL verwenden soll und kopiert einfach beim Öffnen der Arbeitsmappe die DLL-Datei (die ja im selben Verzeichnis wie die Arbeitsmappe liegen soll) in einen Systempfad, den Excel kennt und dort auch DLL Dateien oder was auch immer finden kann.
Beim Schließen der Arbeitsmape kann man dann diese Datei wieder löschen.
Nicht gerade elegant, aber es funktioniert.
Achim
Anzeige
Danke für die Rückmeldung o.T.
13.04.2006 08:34:41
ChrisL
Gruss
Chris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige