COM-Schnittstelle über VBA ansprechen

Hallo,

ich habe einen Microprocessor (CControl), der über eine COM- Schnittstelle angeschlossen ist.
Bisher kommuniziere ich vom PC aus mit diesem mittels Hyperterminal, was für meine Zwecke eigentlich ausreicht. Manche längere Ein-/Ausgaben würde ich aber doch gerne mit Excel/VBA machen. Dazu habe ich mir die RSAPI.DLL installiert und aus Beispielprogrammen die folgenden Deklarationen in meinen VBA-Modul eingebaut:

Declare Sub DELAY Lib "RSAPI.DLL" (ByVal ms As Integer)
Declare Sub OPENCOM Lib "RSAPI.DLL" (ByVal para$)
Declare Sub CLOSECOM Lib "RSAPI.DLL" ()
Declare Sub SENDBYTE Lib "RSAPI.DLL" (ByVal B%)
Declare Sub STRLENGTH Lib "RSAPI.DLL" (ByVal B%)
Declare Sub TIMEOUT Lib "RSAPI.DLL" (ByVal B%)
Declare Sub TIMEINIT Lib "RSAPI.DLL" ()

Declare Function STRREAD Lib "RSAPI.DLL" (ByVal Display$) As Integer
Declare Function READBYTE Lib "RSAPI.DLL" (ByVal ix%) As Integer
Declare Function TIMEREAD Lib "RSAPI.DLL" () As Long
  1. Wenn ich nur etwas sende (OPENCOM, SENDBYTE) und nichts mit STRLENGTH und STRREAD gelesen wird, ist alles gut, an der Reaktion (per LED-Anzeigen) sehe ich, dass es richtig im Microprocessor verarbeitet wurde. Sind die beiden Anweisungen aber drin, stürzt Excel ab!
  2. Benutze ich die RSAPI-Subs und -Functions falsch?
    Leider habe ich auf zig gegoogelten Seiten noch keine Beschreibung dieser RSAPI-Funktionen gefunden, hat jemand was?
    Ich weiss, da gibt es ein Buch, davon brauche ich aber 99% nicht.
  3. Gibt es sonst noch Möglichkeiten, die COM-Schnittstelle aus VBA anzusprechen?

Danke für die Hilfe
Laika

PS: Vista, Office 2003, VB 6.5

  1. Benutze ich die RSAPI-Subs und -Functions falsch?

Hallo Laika,

es weiß hier keiner WIE du sie benutzt.

Gruß
Reinhard

Hallo Reinhard,

es weiß hier keiner WIE du sie benutzt.

Sorry, hatte ich vergessen. Inzwischen scheint es aber zu klappen.

  1. STRREAD ist wohl keine Function, ich habe sie als Sub definiert.
  2. Habe ein bisschen mit den Sub-Parameter herumgespielt.
    Jetzt stürzt Excel nicht mehr ab, liefert auch das, was ich mit Hyperterminal bekomme, aber in einem merkwürdigen Format mit Zeilenvorschüben, die jeweils in die nächste Zelle springen. Muss mal genauer analysieren, was da so rüber kommt.

Lassen wir’s erstmal dabei, meld mich, wenn ich wieder daran arbeite, muss gleich zum Sportvereins-Weihnachtsessen :wink:)

Danke erstmal
Laika