Excel VBAで通信はあまりやらないかもしれませんが、Excel上のデータを他のアプリに送信できると便利と思いやってみました。
A列のデータ(=RAND()で生成)50行分を100ms間隔で送信します。受信側はProcessingアプリです。
一度送ったURLはキャッシュがきいているみたいなので、送信のたびに乱数を更新しています。(Shift+F9)
(ProcessingのExceptionは恥ずかしながらそのままです^^;)
http通信を使うためには、参照設定で”Microsoft XML v6.0″をチェックします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import processing.net.*; Server server; int cnt = 1; void setup() { size(200, 200); server = new Server(this, 12345); println("start"); } void draw() { Client client = server.available(); if (client!=null && client.ip() != null) { if(client.available()>0){ String recv = client.readString(); String[] req = trim(split(recv, '\n')); if(req[0].substring(0, 3).equals("GET")){ String[] data = split(req[0], ' '); println(cnt + " : " + data[1].substring(1)); client.write("HTTP/1.1 200 OK\n"); client.write("Content-Type: text/html\n"); client.write("\n"); client.write("COUNT: " + cnt); client.write("\n\n"); cnt ++; } client.stop(); } } } |
参考: https://tonari-it.com/excel-vba-http-request/