Excel VBA質問箱 IV

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

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


13633 / 13644 ツリー ←次へ | 前へ→

【4376】数字の送信について takagi 03/3/17(月) 0:09 質問
【4497】Re:数字の送信について 杏のパパ 03/3/24(月) 15:00 回答
【4502】Re:数字の送信について takagi 03/3/24(月) 21:44 お礼

【4376】数字の送信について
質問  takagi E-MAIL  - 03/3/17(月) 0:09 -

引用なし
パスワード
   A1からA10までのセルに整数を入れると棒グラフになり、送信ボタンを押すとRS232Cを通過して他の機械にその整数だけを送信するようにするにはどのようにすればよろしいでしょうか?当方、初心者でほとんど何もわかりません。どうかよろしくお願いします。

【4497】Re:数字の送信について
回答  杏のパパ E-MAIL  - 03/3/24(月) 15:00 -

引用なし
パスワード
   初めまして!
答えが返ってきていないようなので、参考までに聞いてください。

>A1からA10までのセルに整数を入れると棒グラフになり、

上記の部分はVBAではなく、普通に、グラフを作った方がいいと思います。

>送信ボタンを押すとRS232Cを通過して他の機械にその整数だけを送信するようにするにはどのようにすればよろしいでしょうか?

問題はこちらの方だと思います。
通常のVBAだけではシリアル(RS232c)通信まではサポートしていません。
(間違っていたらごめんなさい)
ただし、VB(Leanning Editionを除く)をインストールしてあれば、MSCOMM32.OCXというActiveXコントロールがついてきます。これがあれば、ツール・参照設定でこのコントロールを使用することができるようになります。(フォームに貼り付けるだけ)
後は、
  MSComm1.Settings = "4800,n,8,1"
  MSComm1.RThreshold = 1
  MSComm1.PortOpen = True
  MSComm1.Output = "1" & Chr$(13)


Private Sub MSComm1_OnComm()
  Dim ComBuf As String
    If MSComm1.InBufferCount >= 13 Then
      ComBuf = MSComm1.Input
      Label1 = CSng(Mid$(ComBuf, 4, 9))
      ActiveCell = Label1 * 1
      ActiveCell.Offset(1, 0).Activate
  End If
End Sub

などのように、Basicの経験のある方であればなじみのありそうな形で使用する事ができます。(上記のコードは私の作ったものから適当に抜粋しました。このままではもちろん動きません)
他にも、フリーでDLL等がネット上にあるかもしれませんが、とりあえず私が成功した事例です。
この辺のことは、参考書等にも詳しく載っていないので、苦労されると思います。
がんばってください。

【4502】Re:数字の送信について
お礼  takagi E-MAIL  - 03/3/24(月) 21:44 -

引用なし
パスワード
   杏のパパ さん
ご指導ありがとうございます。
Excel VBAによるWin32 API プログラミング入門を勉強すればRS232Cを使用した通信ができると小耳に挟んだので、場違いにもこのような質問をしてしまいました。
一から勉強したいと思います。ありがとうございました。

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