Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here


Read/Write to serial port using VBA-Excel

Read/Write to serial port using VBA-Excel

Read/Write to serial port using VBA-Excel

running a macro using Excel for Office 365 (64bit) on Win10. All Trust settings adjusted accordingly.

Attachment shows module code.
On the form I have a button to run code:
lngStatus=CommOpen(gCOMPort, "COM" & Cstr(gCOMPort),_
("baud=9600 parity=Even data=8 stop=1")
'The port opens OK.

lngStatus=CommWrite(gCOMPort, "X/C" & CRLF)
Pause (2)
lngStatus=CommRead(gCOMPort, datastring, 7)
'Here's where things stop working. Result set does not return correct string. No errors-just not returning expected result.

What else I've tried.
Ran Realterm(serial capture program-sending same command "X/C" and other commands-results returned were correct.
Ran same Excel macro (removed PtrSafe from all Declare Function statements)on WinXP SP2 machine using Excel 2007-results returned were correct.

What I suspect (not validated yet)is Excel 32bit vs 64bit, but before I setup another machine I wanted to ask if any serial programmers
were aware of this issue or have a solution.

RE: Read/Write to serial port using VBA-Excel

The Win32 API handles the serial port as a file. You can access the serial ports directly by calling these API functions from within VBA. I had to do this for an old .NET application but VBA is no different. I recently watched about this presentation on the writing service Edusson. The SerialPort() subroutine outlines the steps to open the port, transmit some data, receive some data, try again to receive some data (to show that it really does not run afoul of the "end of file" error), and close the port

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close