You are on page 1of 8

09/10/2018 Pencom - Visual Basic for Application Serial Port Software Example

All board products Proudly made in USA!

Search products 
 
Cart is empty 
Manufacturer of computer controlled relay, I/O and custom boards for commercial and industrial
applications.

 Menu

Home / Technical Support / VBA Software

Relay Boards
 VBA Software
Relay Boards With I/O

AC Line Monitor Boards

Miscellaneous

Hardware

Visual Basic for Applications Serial Port Software


Example
For this demonstration we will be using the mscomm32.ocx driver in VBA to control a RS232 serial port and USB
virtual serial port that is created with the USB driver installed on your system for our USB products. This allows a
seamless transition between our RS232 and USB devices.

For example, you can be in Access, Excel, or Word and start a macro that would power up an external data
acquisition unit and receive data into the software utilizing VBA, serial control, and one of our serial relay boards
with I/O. You could control room lighting, or any other device that you would like to turn ON or OFF from within an
application, just think of the many possibilities.

Visual Basic for Applications has many of Visual Basic's commands and controls, that can be utilized for control
applications. We will show you how to use this powerful application to control our serial relay boards.

Note: this example is tailored to the first time Visual Basic for Applications user, but the information is useful for the
advanced user that is unfamiliar with serial port control. If you're familiar with VBA and want to skip this demo, you
may jump directly to the code segment.

Let's get started:


For this demonstration we will use Excel's VBA editor, but any of the software that has built in VBA support will
work. Start Excel and select >> Tools >> Macro >> Visual Basic Editor, from the pull down menus as shown in the
picture below, or use Alt+F11 shortcut.

https://www.pencomdesign.com/technical-support/vba-software-example/ 1/8
09/10/2018 Pencom - Visual Basic for Application Serial Port Software Example

Depending on which version of Excel you are using, this and the following screen may look different. The Visual
Basic Editor will appear as shown below.

After VBA is loaded, Right Click in the project window, Select >> Insert >> Userform and a blank form will be
loaded, with a control tool box as shown below.

https://www.pencomdesign.com/technical-support/vba-software-example/ 2/8
09/10/2018 Pencom - Visual Basic for Application Serial Port Software Example

Now we are going to add a serial port control to the control box so that we may use it in our application. For this
demonstration we are going to use the mscomm32.ocx communication driver, depending on what other MS
applications you have loaded on your system, this driver may or may not be available on your system.

Right click in the controls box and select >> Additional Controls… Scroll down to you see Microsoft
Communications Control, and click on the check box on the left, as shown below.

If you don't see this driver available in the additional controls window you can do a file search using windows Start
>> Find >> File or Folder to search for mscomm32.ocx. If this file is found you need to copy this file into the
c:\windows\system directory so the VBA can find it. If this driver is not found continue to the other options
available instead of using the mscomm32.ocx driver

https://www.pencomdesign.com/technical-support/vba-software-example/ 3/8
09/10/2018 Pencom - Visual Basic for Application Serial Port Software Example

Click OK to continue. The control box will now have an icon of a telephone sitting on a modem displayed in the
controls window as shown below.

Select this control and place your cursor on the user form, click the left button and the control will be placed on the
screen. If you see a warning like shown in the picture below you either have a unlicensed copy of the control or the
control is not licensed properly.

If you downloaded the mscomm32.ocx driver from the internet and you don't have Visual Basic, Visual Fox, or one
of the other programs that it is supplied with, you don't have a registered copy and will not be able to use this
driver. Don't worry, there are two other ways to accomplish serial communications that don't require this driver,
continue to the other two options than don't require the mscomm32.ocx driver.

Click on the command button icon in the tool box (rectangular box) and place two buttons on the user form. Click
on CommandButton1 and the options will appear in the properties window. Click to the right of the Caption in the
properties window and change commandButton1 to "All Relays ON". Click on the commandButton2 or select this
name from the pull down at the top of the properties window, and change this to read "All Relays OFF" as shown in
the picture below.

https://www.pencomdesign.com/technical-support/vba-software-example/ 4/8
09/10/2018 Pencom - Visual Basic for Application Serial Port Software Example

Click on the MScomm icon or use the properties pull down menu to view the properties for this control as shown
below.

Click on the property labeled RThreshold, change this value from a "0" to a "1". Do the same for the SThreshold
property. Everything else in this window can remain the same for this example.
https://www.pencomdesign.com/technical-support/vba-software-example/ 5/8
09/10/2018 Pencom - Visual Basic for Application Serial Port Software Example

Note: If you need to read the port status on the board (which is not shown in this example) you need to change the
InputMode property to "1-comInputModeBinary" by selecting the right pull down.

We are now finished with the configuration of the serial port and command buttons. The default settings are
already set for com port 1, 9600 baud, 8 bits, no parity, and one stop bit.

From the menu at the top of the Visual Basic for Applications screen select View >> Code or press F7, and a code
window will be displayed where the form currently resides. Click in the following box and select the contents of the
box by holding the left mouse button and dragging down over the contents. Hold the Ctrl Button down and press
"C'' to copy the contents to the clipboard.

Private Sub CommandButton1_Click()


On Error Resume Next 'Error handler

If MSComm1.PortOpen = False Then 'check if the serial port is open


MSComm1.PortOpen = True 'check if the serial port is open
End If
If Err Then MsgBox Error$, 48 'Display error in message box

'Set all outputs to High (serial relay board commands)


MSComm1.Output = "A" + "H" + "0" + Chr$(13)

End Sub

Private Sub CommandButton2_Click()


On Error Resume Next 'Error handler

If MSComm1.PortOpen = False Then 'if the serial port is closed


MSC 1 P tO T ' th i l t
Switch to Visual Basic for Applications and click inside the code window and highlight any information in this
window -- press Ctrl "V" to paste the contents into the code window. The window should now look like the
following picture.

That's all the code that is required to turn all the relays ON and OFF on our relay boards, it will work on the 1, 2 & 8
Channel relay boards. Select File >> Save Book1 from the pull down menu to save your project before you
attempt to run the program.

All that's left to do is run our program, but first make sure the relay board is connected.
https://www.pencomdesign.com/technical-support/vba-software-example/ 6/8
09/10/2018 Pencom - Visual Basic for Application Serial Port Software Example

On the RS232 versions:

Connect the board to com1 on the back of your computer using the 9 pin serial to modular cable adapter. Connect
the modular cable from the adapter to the input of the relay board. Plug the AC adapter cable into the board and
plug the AC adapter into the wall receptacle or apply power to the board if your using the internal transformer
version.

On USB versions:

If you have not done this already - install the USB driver

Connect the board to your computer with the USB cable. Plug the AC adapter cable into the board and plug the
AC adapter into the wall receptacle or apply power to the board if your using the internal transformer version. The
USB driver will recognize the board and install a virtual serial port (com port) To determine what port the board is
connected to - open the device manager. Enter "devmgmt.msc" in the run dialog box in windows, select ports and
the device should be displayed as "USB serial port (number)" Change the port number in the program you just
created to match this port.

Assuming that everything is connected up properly, press the blue right arrow at the top of the screen and our
program will run. To stop the program click the box on the top right of the user form, DO NOT close the
program using the blue square box in the VBA editor. If you would close the program using the blue box the
serial port will not be closed properly, and it may not operate properly if you would restart the program.

The running program is shown below:

Click the "All Relays ON" button and you will hear an audible click from the relays or the LED indicator will light -
this is activating all the relays on the board and pressing the "All Relays OFF" button will turn all them OFF.

Congratulations on your first Visual Basic For Applications control program using mscomm and relays boards
manufactured by Pencom Design, Inc.

We're sure you will find many practical applications for using your RS232 or USB serial controlled relay board.

© 2000-2018 Pencom Design, Inc. PO Box 645, Trumbauersville, PA 18970-0645, All Rights Reserved

https://www.pencomdesign.com/technical-support/vba-software-example/ 7/8
09/10/2018 Pencom - Visual Basic for Application Serial Port Software Example

https://www.pencomdesign.com/technical-support/vba-software-example/ 8/8

You might also like