【Excel(64bit) VBA】【Winsock API】【TCPクライアント&サーバー】Application.OnTimeによるマルチプロセス対応 

Application.Ontimeを使ったマルチプロセスのアイデアがとても気に入ったので、TCPのクライアント、サーバーのサンプルも作成。

Excelのモジュールに下記コードを張り付けて、MainForMultiProcessを実行すると、読み取り専用のブックでサーバプロセスが起動する。

そのサーバに向けて、testHELLO testElse testQUIT を実行すると、別ブックのサーバで電文受信できる様子が確認できる。

 この手法のメリットは、1ブック内でクライアントとサーバのソースが書けることと、MainForMultiProcessを起動したブックがかたまることはないこと。(Application.OnTimeのギミックを使わずTCPRecvを実行すると、当たり前だけどacceptでVBAが固まってしまい(受信待ち)、別ブックからTCPSendをしなければ解消されない。)

コメント

タイトルとURLをコピーしました