Visual Basic .NET (.NET8)

プロジェクトの作成

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ビット)の内容です。バージョンにより項目名やコマンド等が異なる場合があります。

 

ソースコード内でSerialPortクラスの利用を宣言する

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

 

 

SerialPortクラスのイベント処理

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

 

 

EXEアプリケーションを"Any CPU"ビルドする際の注意点

 一般的に、Visual Studio設定「構成マネージャー」ウィンドウ内の「アクティブ ソリューション プラットフォーム(P)」項目で、"Any CPU"を指定してビルドしたEXEアプリケーションは、64ビットOS環境でも、32ビットOS環境でも実行することができます。

 しかしながら、.NET8フレームワーク対応のEXEアプリケーションを開発する場合は、ターゲットOSを意識する必要があります。

 

 詳細は、FAQ「.NET 8以降の.NETの実行環境」を参照してください。