AW: JAVA API mit VBA verwenden
29.01.2008 20:35:26
Volti
Hallo Thorsten,
grundsätzlich kannst Du Funktionen aus DLL's auch in VBA aufrufen. Denke mal auch JAVA Funktionen, die in einer DLL eingebettet sind, wobei ich das aber jetzt nicht so genau weiß.
Hierbei gibt es zwei Aufrufmodi:
1. Early Bnding und 2. late binding.
Zu 1. Early Binding
Die entsprechende Funktion zuerst Declarieren und dann verwenden:
Hier Beispiele aus WinApi für DLL-Laden und eigene DLL:
Declare
Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As _
Long
Declare
Function Hauptprogramm Lib "D:\PIV_ADD3\PIV_Create.DLL" (Options As String) As Long
Sub WinTest()
hLib = LoadLibrary("D:\myProg\PIV_Create.dll")
End Sub
Sub EigenTest()
Ergebnis=Hauptprogramm("abdabdabd")
End Sub
Über den Declare wird der Ort/Pfad der DLL bereits festgelegt; wenn die Datei nicht da ist gibt es Fehlermeldung
Zu 2. Late Binding:
Hierbei wird die DLL erst geladen wenn sie benötigt wird. Man kann vorher deren Vorhandensein abfragen oder je nach Programmablauf verschiedene DLL_Versionen (Englisch, Deutsch, Französisch) laden:
Sub DynDLL()
hLib = LoadLibrary(LW & "PIV_Create.dll")
pProc = GetProcAddress(ByVal hLib, "Hauptprogramm")
FreeLibrary hLib
End Sub
Diesen Code verwende ich in anderen Programmiersprachen. Leider konnte mir in diesem Forum niemand sagen, wie ich die zurückgegebene Programmadresse unter VBA aufrufen kann........
Also, grundsätzlich kannst Du so arbeiten. Aber Du musst die exportierten Funktionen samt erwarteter Parameter genau kennen, um sie aufrufen zu können. Dann sollte es funktionieren.
viele Grüße
Karl-Heinz