You are here:
ActiveXperts.com > ActiveComport > How to Use ActiveComport > Visual Basic for Applications
Quicklinks
ActiveComport is a software development kit (SDK) that enables the user to communicate to a device over a serial interface.
Such a device can be: a weight indicator, a modem, a scanner, or any other device that is equiped with a serial port. It can even be another PC, connected via a NULL modem cable.
ActiveComport features the following:
Direct COM port support (like 'COM1'), TAPI (Windows Telephony Device) support (like 'Standard 56000 bps Modem'), support for RS-232/RS422/RS485, up to 256 simultaneous ports, support for all types of Hayes compatible modems, support for serial cable, USB cable or Bluetooth connections, support for GSM/GPRS modems, support for Virtual COM ports (i.e. COM ports redirected through the network), hardware flow control (RTS/CTS, DTR/DSR), software flowcontrol (XON/XOFF), configurable baudrate/parity/stopbits, full buffered data transfer, text/binary data transfer.
ActiveComport can be well integrated into Visual Basic environments.
This document describes how the ActiveComport Toolkit can be integrated into Microsoft Excel documents.
Download the ActiveComport Toolkit from the ActiveXperts Download Site and start the installation. The installation guides you through the installation process.
Create the form displayed in the image below. To create the buttons, textarea's and drop down menu's, click "View", "Toolbars", "Control toolbox".
(Click on the picture to enlarge)
Wen you're finished setting up the form, you need to fill in the dropdown menu's. You need to load the content of your submenu when you open your workbook.You can do this using a visual basic code.
To edit your visual basic code you need to be in design mode. To get in design mode, click the button "Design mode"
on the control toolbox.
You can edit the visual basic code behind your form in Excel by clicking the button "View code"
below "Design mode" on the control toolbox.
Open "ThisWorkbook".
(Click on the picture to enlarge)
Type the following code in private sub workbook_open():
Make sure you're directing to the right sheet (worksheets("sheet1")).
'load the dropdown menu's
With Worksheets("Sheet1").cbComport
.AddItem "COM1"
.AddItem "COM2"
.AddItem "COM3"
.AddItem "COM4"
.AddItem "COM5"
.AddItem "COM6"
.AddItem "COM7"
.AddItem "COM8"
End With
With Worksheets("Sheet1").cbSpeed
.AddItem "110"
.AddItem "300"
.AddItem "600"
.AddItem "1200"
.AddItem "2400"
.AddItem "4800"
.AddItem "9600"
.AddItem "14400"
.AddItem "19200"
.AddItem "38400"
.AddItem "57600"
.AddItem "64000"
.AddItem "115200"
.AddItem "128000"
.AddItem "256000"
End With
With Worksheets("Sheet1").cbDataFormat
.AddItem "8,n,1"
.AddItem "7,e,1"
End With
With Worksheets("Sheet1").cbHWFlowControl
.AddItem "Disable"
.AddItem "Enable"
End With
With Worksheets("Sheet1").cbSWFlowControl
.AddItem "Disable"
.AddItem "Enable"
End With
Worksheets("Sheet1").btnClose.Enabled = False
Worksheets("Sheet1").btnOpen.Enabled = True
In this step the code to send and recieve information from the modem will be written. Type the code below down to sheet1. Make sure the buttons, comboboxes and textarea's have the right names.
The following code shows how to query a modem:
Option Explicit 'set comport as object Public objComport As Object '****************************************************** ' sub open button '****************************************************** Private Sub btnOpen_Click() 'empty the textbox that displays the errors txtOutput.Text = "" 'Create the object Comport Set objComport = CreateObject("ActiveXperts.ComPort") 'Create logfile objComport.LogFile = txtOutputfile.Text 'Set the comport objComport.Device = cbComport.Text 'Set the baudrate If (cbSpeed.Text = "Default") Then objComport.BaudRate = 0 Else objComport.BaudRate = cbSpeed.Text End If 'set the flowcontrol If (cbHWFlowControl.Text = "Default") Then objComport.HardwareFlowControl = 0 ElseIf (cbHWFlowControl.Text = "Disabled") Then objComport.HardwareFlowControl = 1 Else objComport.HardwareFlowControl = 2 End If 'set the software flowcontrol If (cbSWFlowControl.Text = "Default") Then objComport.SoftwareFlowControl = 0 ElseIf (cbSWFlowControl.Text = "Disabled") Then objComport.SoftwareFlowControl = 1 Else objComport.SoftwareFlowControl = 2 End If 'Set the dataformat If (cbDataFormat.Text = "Default") Then objComport.DataBits = objComport.asDATABITS_DEFAULT objComport.StopBits = objComport.asSTOPBITS_DEFAULT objComport.Parity = objComport.asPARITY_DEFAULT End If If (cbDataFormat.Text = "8,n,1") Then objComport.DataBits = objComport.asDATABITS_8 objComport.StopBits = objComport.asSTOPBITS_1 objComport.Parity = objComport.asPARITY_NONE End If If (cbDataFormat.Text = "7,e,1") Then objComport.DataBits = objComport.asDATABITS_7 objComport.StopBits = objComport.asSTOPBITS_1 objComport.Parity = objComport.asPARITY_EVEN End If 'open the device objComport.Open 'check for errors GetResult End Sub '****************************************************** ' Sub Show results '****************************************************** Private Sub GetResult() Cells(1, 1) = objComport.LastError If objComport.LastError = 0 Then txtOutput = "SUCCESS" 'the connection with the device was succesfull, disable the open button and enable the close button btnOpen.Enabled = False btnClose.Enabled = True Else 'say out any error 'for more information about errors visit: http://www.activexperts.com/support/errorcodes/Index.asp txtOutput = "ERROR " & objComport.LastError & " ( " & objComport.GetErrorDescription(objComport.LastError) & " )" End If End Sub '******************************************************* ' Sub Close button '******************************************************* Private Sub btnClose_Click() objComport.Close 'Display the errors GetResult 'clear the reply field txtReply = "" 'enable the openbutton and disable the close button btnOpen.Enabled = True btnClose.Enabled = False End Sub '****************************************************** ' Sub execute your commands '****************************************************** Private Sub btnExecute_Click() 'before displaying the result of the commands given, clear the fields txtOutput.Text = "" txtReply = "" 'execute the given command objComport.WriteString (txtExecute) 'check for errors GetResult 'set time out, so the device wil have enough time to execute the command before displaying the result objComport.Sleep (1000) 'say out the results txtReply.Text = objComport.ReadString End Sub
You can download the Excel document from our FTP site. There are many other working samples included with the product. You can also find them on the ActiveXperts FTP site: ftp.activexperts-labs.com/samples/serial-port-component.