今回はちょっと風変わりなVBA本を紹介。
VBAによるTCP/IPプログラミング入門―HTTP,SMTP,POP3,FTPの基本がわかる (TCP・IP基礎シリーズ)
- 作者: 志村康人
- 出版社/メーカー: CQ出版
- 発売日: 2005/07
- メディア: 単行本
- クリック: 105回
- この商品を含むブログ (10件) を見る
本日時点で、Amazonの中古で12,000円という恐ろしい値段がついているが、マルツオンラインというショップのサイトで定価で買えてしまった。
https://www.marutsu.co.jp/pc/i/549354/www.marutsu.co.jp
電子部品のパーツショップのようなのだが、なんでそんなショップで買えるのかは謎。
中古本市場はAmazonが最後の砦だと思っていたが、そうでもないようだ。
さて、この本はVBAでメールの送受信とか、FTPのアップロード・ダウンロード、Webサーバーと通信してhtmlやjpegなどの取得などを扱っている。
メールといっても、Outlookの機能を利用したりはしない。
たとえばOutlookなどでメール受信ボタンを押したとき、舞台裏ではメーラーとメールサーバーがこんなやり取りをはじめる。
メーラー「今から通信します。」 サーバー「OK」 メーラー「ユーザー名は○○」 サーバー「OK」 メーラー「パスワードは○○」 サーバー「OK、ようこそ」 メーラー「どれくらい溜まってますか?」 サーバー「300通、20MBです」 メーラー「一覧をください」 サーバー「はい、どうぞ」 メーラー「1番のメールをください」 サーバー「はい、どうぞ」 メーラー「1番のメールを消してください」 サーバー「消しました。」 メーラー「2番のメールをください」 サーバー「はい、どうぞ」
もちろん、日本語ではなく専用のコマンドである。
裏側でやっているので一般の方は見たことが無いと思う。
この書籍では、この裏方の通信を自前でやろうという話である。
他の言語では割と書籍が出そろっているが、VBAでやろうという人はあまりいないためか、解説書はこの本以外に見つからない。
Amazonレビューでも5つ星が4件、4つ星が1件の高評価で、間違いなく良書である。
しかし、残念な点がある。
全部で7章構成となっているが、そのうち2章、4章、7章は標準のVBA機能だけでは実施できず、VB6に同梱されているWinsockコントロール、Inetコントロールを使用する。しかし今さらVB6を入手するわけにもいかず、これらは丸ごとスキップすることにした。
新規でこれらのコントロールを追加はできないが、サイトからサンプルプログラムをダウンロードしてそれをいじることはできるらしい。
※やってみようと思ったがサイトからダウンロードしたサンプルのZIPにパスワードがかかっており、書籍内にも記載がなかったので出版社に問合せ中である。
WinsockやInetといったコントロールは面倒なAPI呼び出しを隠蔽して簡単に扱えるようにしてくれるコントロールである。
それを使えば多少は簡単にコーディングできるのだが。。
3章と5章はWinsockコントロールやInetコントロールの代わりにAPIを直接使用したプログラミングである。
より詳細な部分まで自前で実装することになるが、こちらの方が力はつくと思うので楽しみである。
コーディングの前に、そもそもサンプルがちゃんと動くのかどうか確認したいので、とりあえず出版社からZIPパスワードの回答があるまでは積ん読にしようと思う。