VBA

EXCEL

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

Application.Ontimeを使ったマルチプロセスのアイデアがとても気に入ったので、TCPのクライアント、サーバーのサンプルも作成。 Excelのモジュールに下記コードを張り付けて、MainForMultiProcessを実行すると...
Excel【VBA】

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

Application.OnTime を使ったマルチプロセスの記事をみて、ぜひWinsockに適用し一番やってみたかったチャレンジ とりあえず成功したので、コードのメモ 何が驚くかというと、 ・現在作業中のシートから、受信事象待ち専用のプロ...
Excel【VBA】

【Excel(64bit) VBA】【Winsock API】IPアドレス変換(文字列⇔コード値)コードサンプル【inet_addr】【InetNtopW】利用

IPアドレス文字列(例:192.168.10.1)をコード値に変換したり、コード値からIPアドレス文字列に変換するサンプル
Excel【VBA】

【Excel(64bit) VBA】【Winsock API】ポート番号(u-short型)をVBAで扱う方法とその検証

ポート番号、winsockではu-short(16bit 符号なし整数 0 - 65535)で扱うことになっているが、VBA上では、u-shortが存在しない。 同じサイズのintegerを使うコードをよく見かけるが、どうもその理屈がわから...
EXCEL

【Excel(64bit) VBA】【Winsock API】【UDPクライアント&サーバー】サンプル 最新化

以前作成したUDPクライアント、サーバサンプルを最新化 以前のサンプルでもまだ動くが、ソース量が多く、先人のコピペによる力が大きかったので、全体を見直した。 今回の見直しを通して得た知識は特に以下3つ WSAGetLastErrorでは、エ...
Excel【VBA】

【Excel(64bit) VBA】【Winsock API】recvfrmの第2引数(char* buf)にはVBAからByval string型で渡す必要がある件

3日くらいドはまりした。しかも、あまり納得できていないがそういうものだと思うしかない。そして、調べてみたら、この件について思うことや対応策を考えている人がわずかにいて、安心した。 まず前提(自分の思い込みかもしれないが) VB(VBA)を多...
Excel【VBA】

【VBA】【Excel(64bit)】WinSock  getaddrinfoでホスト名からIPアドレスを調べる

ホスト名からIPアドレスを取得する処理サンプルを作ろうとgethostbynameと悪戦苦闘しているが、いまいちうまくできない。他に何か方法がないか調べていたら、たまたま stackoverflowのサイトを調べていたらgetaddrinf...
Excel【VBA】

【VBA】【Excel(64bit)】WinSock  gethostnameで自身のホスト名を取得する

ホスト名(いわゆるコンピュータ名)を取得するサンプル gethostnameというAPIを使っている。このサンプルではホスト名が文字列で出力される。IPアドレスが取得できるgethostbynameとは違うので注意
Excel【VBA】

【VBA】【Excel(64bit)】WinSockのエラーコードの取得方法まとめ(WSAStartup時は戻り値、WSAStartup成功後はErr.LastDllErrorを使うこと、 VBAではWSAGetLastErrorは使えないぞ!)

C言語系のサンプルコードでは、Winsock関連のエラーコード(詳細)を取得する場合、Microsoftのドキュメント通り、WSAGetLastError()を使うコードが散開している。(一例) これを真似て、VB(VBA)からwinsoc...
Excel【VBA】

【VBA】【Excel(64bit)】WinSockの起動(WSAStartup) と終了(WSACleanup)サンプル

過去のブログで公開してたWinsockを使ったソケット通信プログラムの切り出し。 まずは復讐で、Winsockの起動と終了まで もう十分枯れた技術で、今更Excel VBA でとも思ったが、最近見かけたApplication.timerを利...