Hallo Community,
ich bräuchte wieder mal Euer Spezialwissen: Es geht um die „Declare Function“ in VBA.
https://docs.microsoft.com/de-de/off...lare-statement
[ Öffentlich | Privat ] Declare PtrSafe Sub name Lib "libname" [ Alias "aliasname" ] [ [ [ arglist ] ) ]
Nehmen wir ein einfaches Beispiel:
Code:
Declare Function Funkt_1 Lib "MyLib.dll" _
(ByVal X As Double) As Double
Funkt_1 befindet sich hierbei in
MyLib.dll
Ich möchte gerne den String
"MyLib.dll" durch die Variable
MyLibName ersetzen, wobei MyLibName den kompletten Pfad und den
DLL-Namen enthält.
VBA bring stets die Fehlermeldung:
"Fehler beim Kompilieren: Erwartet: Zeichenfolgenkonstante"
Meine Fragen:
1):
Kann man Excel irgendwie austricksen?
2):
Oder, wenn das nicht geht, wie kann ich Excel veranlassen, "MyLib.dll" im selben Verzeichnis zu suchen, wo sich die Excel-Datei befindet?
Ich habe beim Öffnen des Excel-Files das entsprechende Verzeichnis ermittelt und in der Variablen strPfad abgelegt. Selbst ein an und für sich unnötiges ChDir(strPfad) bleibt wirkungslos.
Code:
Private Sub Get_Pfad()
strPfad = ThisWorkbook.Path
ChDir strPfad
End Sub
Public Sub Workbook_Open()
Get_Pfad
End Sub
Vielen Dank für Eure Hilfe im Voraus!
Gruß, Andreas