Visual Studioを起動し、[ファイル(F)]から[新規作成(N)]-[プロジェクト(P)]を選択します。
[新しいプロジェクトの作成]ダイアログボックスのテンプレートから、[Visual Basic]の[Windows フォーム アプリ]を選択し、[次へ(N)]ボタンをクリックします。
[新しいプロジェクトを構成します]ダイアログボックスから、作成するプロジェクトの名前と保存場所を指定し、[次へ(N)]ボタンをクリックします。
[追加情報]ダイアログボックスから、[.NET 8.0(長期的なサポート)]を選択し、[作成(C)]ボタンをクリックすると、プロジェクトが作成されます。
※上記は、Microsoft Visual Studio Professional 2022 (64ビット)の内容です。バージョンにより項目名やコマンド等が異なる場合があります。
シリアル通信を、Visual Basic .NETで行う場合、SerialPortクラスを利用する方法があります。
参考:[SerialPortクラス] (外部リンクであるため、予告なくリンクが変更されることがございます)
https://learn.microsoft.com/en-us/dotnet/api/system.io.ports.serialport
Visual Basic .NETデフォルト設定では、.NET8のSystem.IO.Portsクラスはプロジェクトに組み込まれていません。
このため、明示的に外部クラスを組み込みます。
Visual Studioのメニューバーから[プロジェクト(P)]を選択し、プルダウンメニューから[NuGet
パッケージの管理(N)...]を選択します。
[NuGetパッケージ マネージャー]から[参照]タブを選択し、参照ボックスに"System.IO.Ports"と入力します。
検索の結果、最上段に表示されるMicrosoft提供の"System.IO.Ports: Provides classes for
controlling serial ports."を選んでインストールします。
Visual Studioの[ソリューション エクスプローラーー]ウィンドウ内のツリービューで、[依存関係/パッケージ]の中に、インストールしたモジュールの有無が確認できます。
※上記は、Microsoft Visual Studio Professional 2022 (64ビット)の内容です。バージョンにより項目名やコマンド等が異なる場合があります。
Visual Basic .NETでSerialPortクラスを使用するには、System.IO.Ports名前空間をプロジェクト内で使えるようにすることが必要です。
Importsステートメントを利用して、System.IO.Portsパッケージの利用を宣言します。
また、Dim
custmer As New application()宣言を使い、System.IO.Ports.SerialPortのインスタンスを作成例を示します。
さらに、Dim WithEvents customer
As application()宣言を併用して、合わせてSystem.IO.Ports.SerialPort()イベント処理ができるようにしています。
詳細はサンプルプログラムのソースコードを参照してください。
プログラム例:
Imports System.IO.Ports 'Namespace for System.IO.Ports
Public Class Form1
Dim WithEvents SerialPort1 As New System.IO.Ports.SerialPort() 'SerialPortクラスのインスタンス作成、および、イベント処理宣言
・・・・
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
・・・・
SerialPort1.BaudRate = 9600 'ボーレート設定(Setting Baudrate.)
SerialPort1.DataBits = 8 'データビット設定(Setting Databits.)
SerialPort1.StopBits = StopBits.One 'ストップビット設定(Setting Stopbits.)
SerialPort1.Parity = Parity.None 'パリティ設定(Setting Paritybits.)
・・・・
End Sub
・・・・
End Class
Dim WithEvents serialPort1 As New System.IO.Ports.SerialPort() で宣言したSerialPort1は、以下のような記述でSerialPortクラスのイベントの処理ができます。
SerialPort1_DataReceived()に、必要なイベント処理プログラムを追記します。
詳細はサンプルプログラムのソースコードを参照してください。
プログラム例:
Imports System.IO.Ports 'Namespace for System.IO.Ports
Public Class Form1
Dim WithEvents SerialPort1 As New System.IO.Ports.SerialPort() 'SerialPortクラスのインスタンス作成、および、イベント処理宣言
'受信したとき起動するメンバ
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
・・・・
End Sub
End Class
一般的に、Visual Studio設定「構成マネージャー」ウィンドウ内の「アクティブ ソリューション プラットフォーム(P)」項目で、"Any CPU"を指定してビルドしたEXEアプリケーションは、64ビットOS環境でも、32ビットOS環境でも実行することができます。
しかしながら、.NET8フレームワーク対応のEXEアプリケーションを開発する場合は、ターゲットOSを意識する必要があります。
詳細は、FAQ「.NET 8以降の.NETの実行環境」を参照してください。