Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1144to1148
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
Inhaltsverzeichnis

VBA von VB.NET erzeugen

VBA von VB.NET erzeugen
VB.NET
Ich habe in VB.NET folgenden Code, der in Kombination mit der eapi.dll perfekt funktioniert.
Public Structure TEapiNotifyParams
Public Msg As Int32 ' message used to return result
Public Handle As IntPtr ' main application handle, used to send return result;
End Structure
Declare Function Start Lib "Eapi.dll" _
Alias "Start" (ByVal SystemNotifyParams As TEapiNotifyParams, _
ByVal BaseCurrencyId As Integer, _
ByVal SLogin As String, _
ByVal SPassword As String, _
ByVal SSystemUrl As String) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles  _
Button1.Click
Try
Dim params As TEapiNotifyParams = New TEapiNotifyParams
params.Msg = EapiConstants.WM_EAPI_START_COMPLETED
params.Handle = Me.Handle
Dim url As String = New String(TextBox1.Text)
Dim login As String = New String(TextBox2.Text)
Dim pass As String = New String(TextBox3.Text)
Dim BaseCurr As Integer = Integer.Parse(TextBox5.Text)
Dim result As Integer = EapiTestImport.Start(params, BaseCurr, login, pass, url)
End Try
End Sub
Nun möchte ich den Code unter Excel/VBA laufen lassen, wobei ich Probleme mit "Public Handle As IntPtr" von TEapiNotifyParams und mit "params.Handle = Me.Handle" habe.
Wie lautet der entsprechende Code, damit ich ihn unter Excel laufen lassen kann? Dabei möchte ich jedoch keine Forms verwenden, sondern direkt aus Excel heraus den Code starten.
Besten Dank im Voraus.
Grüße
Peter

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA von VB.NET erzeugen
08.03.2010 20:46:18
VB.NET
Hallo,
theoretisch so:
Option Explicit

Private Declare Function Start Lib "Eapi.dll" ( _
    ByRef SystemNotifyParams As TEapiNotifyParams, _
    ByVal BaseCurrencyId As Integer, _
    ByVal SLogin As String, _
    ByVal SPassword As String, _
    ByVal SSystemUrl As String) As Integer

Private Type TEapiNotifyParams
    Msg As Long
    Handle As Long
End Type

Private Sub test()
    
    Dim params As TEapiNotifyParams
    Dim url As String
    Dim login As String
    Dim pass As String
    Dim BaseCurr As Integer
    Dim result As Integer
    
    params.Msg = ? ' EapiConstants.WM_EAPI_START_COMPLETED
    params.Handle = Application.Hwnd
    
    url = "ABC"
    login = "DEF"
    pass = "GHI"
    BaseCurr = 123
    
    result = Start(params, BaseCurr, login, pass, url)
    
End Sub

Allerdings habe ich nicht herausfinden können was sich hinter "EapiConstants.WM_EAPI_START_COMPLETED" verbirgt. Lass dir den Wert aus .net mal in einer MsgBox ausgeben. Das muss ein nummerisches Flag sein.
Gruß
Nepumuk
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige