Microsoft Excel

Herbers Excel/VBA-Archiv

JAVA API mit VBA verwenden

Betrifft: JAVA API mit VBA verwenden von: Torsten
Geschrieben am: 29.01.2008 19:39:49

Hallo,

ich möchte gern eine JAVA API mit Excel VBA nutzen, so wie man es mit einer API in DLL-Form machen kann. Kann mir jemand sagen, wie man eine solche JAVA API in Excel einbinden kann und dann die JAVA Methoden nutzen kann?
Ich hoffe mir kann jemand helfen.

Vielen Dank für die Antwort und Viele Grüße
Torsten

  

Betrifft: AW: JAVA API mit VBA verwenden von: Volti
Geschrieben am: 29.01.2008 20:35:26

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


  

Betrifft: AW: JAVA API mit VBA verwenden von: Volti
Geschrieben am: 29.01.2008 20:35:32

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


  

Betrifft: AW: JAVA API mit VBA verwenden von: Torsten
Geschrieben am: 29.01.2008 20:46:16

Hallo, mein Problem ist, dass es sich bei JAVA API nicht um eine DLL handelt, sondern um eine *.jar Datei. Nun ist die Frage wie man diese Datei am besten in Excel nutzen kann. Danke schon mal für die Antwort


  

Betrifft: AW: JAVA API mit VBA verwenden von: Jens
Geschrieben am: 29.01.2008 23:40:32

Hi,

wenn die Klasse eine Schnittstelle bietet, einfach einen Verweis setzen.

mfg Jens


  

Betrifft: AW: JAVA API mit VBA verwenden von: Torsten
Geschrieben am: 30.01.2008 09:27:27

Hallo,

muss man denn da auch noch eine andere DLL einbinden, um JAVA zu starten bzw. die JAVA-Befehle nutzen zu können?

Gruß Torsten


  

Betrifft: . von: .
Geschrieben am: 30.01.2008 16:08:22

.