Visual Basicでシリアルポートの制御を行うには、.NET Framework 2.0 シリアルポートクラスを使用する方法とWin32 APIを使用する方法があります。ここでは、比較的簡単なシリアルポートクラスを使用したデータの送受信のプログラム例を紹介します。
.NET Framework は、Ver.2.0 からCOMポート用のクラス(SerialPortコンポーネント)が追加されました。Visual Basic 2005以降は、.NET Framework のSerialPortコンポーネントが使用可能となり、比較的簡単にCOMポートを制御できるようになりました。代わりに、Visual Basic 6 など、これまでのバージョンでよく使用されていた「MSCommコントロール」は使用できなくなっている点に注意してください。
Visual Basicの「ツールボックス」からSerialPortコンポーネントを選択し、左クリックでコンポーネントをドラッグ&ドロップでフォームに貼り付けます。貼り付けが完了すると、フォーム下に貼り付けたコンポーネントが現れます。
現れたコンポーネントをクリックすると、このコンポーネントのプロパティウィンドに切り替わります。「PortName」プロパティでは、通信に使用するポート番号を設定します。初期値は「COM1」です。「BaudRate」プロパティでは、通信速度を設定します。初期値は「9600」です。その他、RTSの使用有無などの設定も行えます。
プロパティウィンドのイベントボタンをクリックすると、このコンポーネントのイベントの一覧が現れます。使用するイベントを選択しダブルクリックすると、該当イベントルーチンが追加されますので、この場所に各種イベントが発生した際の処理を記述します。
シリアルポートのプログラミングには、Win32 API(Application Program Interface)を呼び出す方法もあります。Win32 APIとプログラミング言語の深い知識が必要となりますが、より高度で柔軟性のあるプログラミングが可能となります。
Win32 APIとは、Windows が標準で提供している機能(関数)セットです。DLL形式で提供され、Windows上で動作するアプリケーションであれば共通して使用することができます。Windowsは、主たる機能を約1000種類のAPI関数として提供しており、アプリケーションソフトはこれらの機能の組み合わせとして構築されています。Visual BasicやVisual Cは、多くの命令を持っていますが、すべてのWindows機能を使えるわけではなく、必要に応じてAPI関数を呼び出して利用することになります。シリアルポートを制御するには以下のAPIなどを使用します。