Einzelnen Beitrag anzeigen

Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
711 Beiträge
 
Delphi XE5 Professional
 
#1

Excel VBA: Declare Function Libname als Variable – Wie geht das?

  Alt 8. Okt 2021, 23:25
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
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat