[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロを使用してCOMに出力』(サム)
先週からマクロを勉強し始めた初心者です。
マクロを使用してデータを加工し、CSVファイルで保存。
保存したファイルをCOMに出力したいと思っているのですが、
マクロでそこまでの作業は可能でしょうか?
宜しくお願い致します。
COMって何でしょうか? RS232Cのシリアル通信のことですか? (INA)
多分 COM は[INA]さんが言う RS232Cポート のことだと思います。
技術的には可能ですが、[プログラムの知識]+[RS232Cの知識]+[ハード知識] が必要です。もしその部分を処理する市販のプログラムがあるのならそれを 使うことをお勧めします。
私も以前デジタル電圧計で測定した結果をリアルタイムにExcelに持ってくる処理が 必要になってやろうとしましたが、時間的な制約もあって、市販のソフトを購入 しました。今回は逆に送る方ですが。
(kazu)
私は今でもシリアルポートを使って、ある処理をさせてます。勿論市販ソフト使用ですが。 端末機器が十数年前の物で USB 不対応 でやむなく RS232C です。
エクセルにもインポートさせてますので 横取り用の美味しいコードが、、、と期待したのですがチョット残念(笑) (jun53)
(kazu)さん、技術的には可能との事ですが、マクロの記述のみで可能という事ですか?
とりあえず、ステータスの確認等の制御なしで232Cポートから吐き出せれば良いのですが、何とか市販ソフトを使わずにやりたいので、出来ましたらもう少し具体的に説明をお願いできませんか?
宜しくお願いします。
(サム)
Webを調べました。 ↓のサイトのNcard9911.lzh(63.1KB)が役に立つかもしれません。 Excel VBA によるOMRの制御
(kazu) http://www11.ocn.ne.jp/~nontomo/egawa/ncard.html
---------- ↓Ncard9911.xlsのVBAの一部分 ----------
Private Sub CommandButton1_Click() 'シリアルポートをオープンする Const GENERIC_READ = &H80000000 '読み取り用定数 Const GENERIC_WRITE = &H40000000 '書き込み用定数 Const OPEN_EXISTING = 3 '既存のファイルをオープンする comname = "COM1" '使用するポートに応じて"COM2"などに変更する hComm = CreateFile(comname, GENERIC_READ Or GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0) If hComm = -1 Then MsgBox comname & "が使えません", 16: End dummy = GetCommState(hComm, stDCB) 'DCBを読み込む stDCB.BaudRate = 9600 '転送速度を9600bpsにする stDCB.ByteSize = 7 'ビット長を7ビットに指定 stDCB.DCBflgs = &H3001 'バイナリモードのフラグを有効にし 'RTSの制御を設定する(それ以外はFalseにする) stDCB.Parity = 0 'パリティなし stDCB.StopBits = 2 'ストップビット数を指定( 0=1ビット,1=1.5ビット,2=2ビット) dummy = SetCommState(hComm, stDCB) '必要ば部分だけ書き換える
timeOut.ReadIntervalTimeout = 500 'タイムアウトの設定 timeOut.ReadTotalTimeoutMultiplier = 0 'シート1枚につき0.5秒もあれば十分処理できる timeOut.ReadTotalTimeoutConstant = 500 ' timeOut.WriteTotalTimeoutMultiplier = 0 timeOut.WriteTotalTimeoutConstant = 500 dummy = SetCommTimeouts(hComm, timeOut)
MsCommコントロールとAPIを使う方法2通りについて、 丁寧に説明されていますので、こちらを読んで勉強してみて下さい。
http://speana-1.hp.infoseek.co.jp/vb/vb_menu.htm
(INA)
[INA]さん、いつもありがとうございます、私も一度書き込んで消したのですが、 これは VBA ではなく VB ではないでしょうか? (kazu)
実際に使用したわけではないので分からないのですが、 VBの説明だと何か問題があるのでしょうか? EXCELでもAPI関数は利用できますし、MsCommも追加すれば利用できますが、 これらの方法だと不都合があるのでしょうか?
(INA)
言い方が悪かったかもしれません。 VB の説明が VBA では役に立たないとは言いません。
(kazu)
サムさん、度々割り込んでごめんなさい。
kazuさん紹介の Web [Excel VBA によるOMRの制御] 今懸命に解読中。頭のネジがギシギシいってます。
INAさん紹介の Web [Visual Basic 解説] 以前他のところで紹介されてたので、読んだ事が有るのですが、 こちらも、頭のネジがギシギシ。
VBA の道は険しく遠いです。2,3年の修行が必要かも、です(笑) (jun53)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.