DLLの組み込み

目的
DLL(ライブラリ)を組み込んで実行する方法を紹介します。

ダウンロード
DLLはFTDI社からダウンロードできます。ソース(.xls)とDLLはこちらにあります。

LibとDLL
DLLライブラリを利用するには、xx.lib と xx.DLL が必要です。これをソースと同じ場所のおきます。

利用例
FT_Open() の利用例です。
'FT_OPEN関数を使いUSBをオープンする。
Dim lngHandle As Long
Public Function UsbOpen() As Long
Dim Rt As Long
Rt = FT_Open(0, lngHandle)
Rt = FT_SetBaudRate(lngHandle, 19200)
Rt = FT_SetBitMode(lngHandle, &H0, 1)
UsbOpen = Rt
End Function

リンク
USBモジュールの技術的な情報はこちらを参照してください。

ボタン
処理 ボタン処理で先に定義したUsbOpen()を利用します。 'open ボタン
Private Sub CommandButton1_Click()
If 0 = UsbOpen() Then
TextBox1.Text = "USBオープンに成功しました。"
Else
TextBox1.Text = "USBオープンに失敗しました。"
End If
End Sub

注意
セルの配置を変更しても、プログラムは変更されませんから、注意が必要です。

メソッド定義
DLLで定義された関数(メソッド)を次のように宣言します。ByValは値渡し、ByRefは参照渡しです。
この宣言を 標準モジュール の先頭で行うことで、シートでメソッドが利用可能になります。他のメソッドも引数の型を指定して宣言します。
 Private Declare Function FT_Open _
Lib "FTD2XX.DLL" (ByVal intDeviceNumber _
As Integer, ByRef lngHandle As Long) As Long

実行画面
これは、FTDI社のシリアルUSBの入出力をBitBanモードで利用した例です。まず、USB OPENボタンで接続をします。「停止中」の文字が「OPENに成功」に変わります(テキストボックス利用)。
入出力設定では、セルをクリックして 'I' と 'O' を変更し、SETボタンで設定します。変更では、シートの選択イベントを利用し、'I'や'L'の文字なら値を変更します。各ビットの表示にはセルをそのまま利用できます。