VBAでUSB_IOを行う
エクセルファイル(swtch_sumple.xls)
●エクセルの場合(32ビット/64ビット機)
※64ビット機の場合は「libusb-win32」をインストール する必要がある。
Windows10の64ビット機でoffice2013の際にエラーが出ています。(現在調査中です)
(1)VBAが扱えるよう、リボンに「開発」リボンを追加する。
(2)「開発」タグから「デザイン」ボタンを押し、デザインモードにする。
(3)「開発」タグから「挿入」ボタンを押し、ActiveXコントロールの中のボタンを貼る。
(4)「CommandButton1」ボタンをクリックし、VisualBasicの画面を出す。
(5)標準モジュールを追加する
「hidmon.dll」を f ドライブに置いた場合
Option Explicit
Public Declare Function UsbInit Lib "f:\hidmon.dll" (ByVal device As String) As Integer
Public Declare Function UsbExit Lib "f:\hidmon.dll" () As Integer
Public Declare Function UsbPeek Lib "f:\hidmon.dll" (ByVal address As Integer, ByVal arena As Integer) As Integer
Public Declare Function UsbPoke Lib "f:\hidmon.dll" (ByVal address As Integer, ByVal arena As Integer, ByVal data As Integer, ByVal mask As Integer) As Integer
Public Declare Function PortAddress Lib "f\:\hidmon.dll" (ByVal portname As String) As Integer
Public h As Integer
(6)ボタンに命令を追加する
自作HIDaspxを使って、B7〜B3ピンを入力ピンにするとき
UsbInit ("*") '自作HIDaspxのとき UsbInit ("#"):商用版のとき(ヒダピオ学習回路)のとき
h = UsbPoke(PortAddress("ddrb"), 0, 7, 0)
Do
h = UsbPeek(PortAddress("pinb"), 0)
For i = 1 To 5
If h > 2 ^ (8 - i) Then
h = h - 2 ^ (8 - i)
Cells(1, i).Interior.Color = vbBlack
Else
Cells(1, i).Interior.Color = vbRed
End If
Next i
DoEvents
Loop
h = UsbExit()
●複数台のHIDaspxを使った例
エクセルファイル(swtch_sumple2.xls)