Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


20269 / 76732 ←次へ | 前へ→

【61885】Re:シリアル通信について
発言  kanabun  - 09/6/10(水) 14:53 -

引用なし
パスワード
   ▼まる さん:
こんにちは。

>シリアル通信についての質問ですが、Microsoft communications
> control Ver6ですが相手機器との通信はできているのですが、
> CPUの使用率が高くパソコンが熱くなる状態です。
> CPUの使用率を軽くする方法がないものかという質問です
> 通信状態ですが、相手機器のビットの立ち上がりを監視して、
> データーをエクセルに取り込むという方式です

「相手機器のビットの立ち上がりを監視して」ということが
よくわからないですが、
MSCommの通信方法には次の2つがあるそうです
 h t tp://spectrum123.at.infoseek.co.jp/vb/vb_4/vb_4.htm
●イベントドリブン(割込み方式)による通信
 シリアル ポートを使用した双方向処理を効果的に行う方法です。
●ポーリング方式による通信:
 プログラム内で、主要な関数の実行が終了するたびに
 CommEvent プロパティの値をチェックして、イベントおよび
 エラーのポーリングを行う方法もあります。小規模で、単独で
 動作するアプリケーションでは、この方法が適切な場合があります。

現在はこのどちらの方式ですか?

前者の方式なら、メモリ上のコミニュケーションバッファ
(というか、受信バッファ)にデータが送り込まれると OnCommイベント
が発生しますから、そこでイベントの種類をCommEventプロパティで
ケース分けして、CommEventプロパティが「受信イベント
comEvReceive」のときだけ、受信バッファ内のデータをInputメソ
ッドで取得して、ワークシートなどに吐き出していけばいいと思います。
( h t tp://spectrum123.at.infoseek.co.jp/vb/vb_5/vb_5.htm より)

Private Sub MSComm1_OnComm()
    Dim Buffer As Variant

    Select Case MSComm1.CommEvent
      Case comEvReceive
        Buffer = MSComm1.Input
        Text2.Text = Text2.Text & Buffer

とはいえ、
もう10年もRS232Cやってないし、現在では環境がないので
テストできませんので、関係ページの紹介だけでした m(__)m

1 hits

【61870】シリアル通信について まる 09/6/10(水) 1:00 質問
【61885】Re:シリアル通信について kanabun 09/6/10(水) 14:53 発言

20269 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free