お初です。VB歴1週間の超ド素人です。
機器に、エクセルに書かれたE1からE1024までのバイナリーデータを順に流したいのですが、それ以前の問題で、1バイトも送信出来ません。
過去レスを拝見させて頂いたのですが、アホゥな私にはイマイチ理解できません。
Private Sub cmdOut_Click()
'送信釦クリック時の処理
'バイナリ8Bitデータを一回だけ送信------TEST_Program-------
Dim sdData As Byte
sdData = Sheets(2).Cells(1, 5).Value
msSerial.Output = sdData <----エラーになる行
End Sub
E1セルには2が書き込まれています。ポート設定、通信設定等の初期設定はHelpの通りに設定したつもりです。
どうか、ご教授願えませんでしょうか。
mscomm.outputはstring型で渡してあげなければダメなはずです。
byte配列に入れてあげてばどうでしょうか?
'送信釦クリック時の処理
Private Sub cmdOut_Click()
Dim sdData(0) As Byte
sdData(0) = "&H" + hex(Sheets(2).Cells(1, 5).Value)
msSerial.Output = sdData
End Sub
とりあえずこんな感じかしらん?
ありがとうございます!
動きましたっ。
msSerial.Output=sdDataの所が疑問なのですが、
宣言で、sdData(0)はバイトデータとしましょう、っと定義しましたよね。
そして、sdData(0)に値を代入。
そうすると、送信するのはsdData(0)なのでわ…っと思うのです。が、このように書き換えると、元の木阿弥でした。
sdData(0)とsdDataは何が違うのでしょうか。
お願い致します。
"多分こんな感じかな"さん、ありがとうございました。
sdData()とsdDataの件は自己解決しました。
|
ツイート | ![]() |