VBA で FTP プログラムを作る
VBA で FTP プログラムで使用するサブルーチンを整えていく

一番肝となるFTPのエンジンですよね?
最近のサーバーとの通信は、パッシブモードで通信しないとデータのやり取りができません。
そんな面倒なプログラムをVBAで作れるのか?
そんな疑問の声が聞こえそうですが、そんな面倒なものを書かなくてWINDOWSには、もともとFTPのプログラムが入っています。
さらに、コマンドラインベースで動くプログラムがあります。
サイトがなくならないことを祈りつつ・・・
⇒ http://www.geocities.jp/rich_slipper/soft/soft.html
VBAでパッシブモードのFTPを作る。ファイル送受信は、外部プログラムを使う
VBA でパッシブモードのFTPプログラムを簡単に作るために、コマンドラインで動くFTPプログラムをバッチファイルで起動します。だっせ~!じゃなくて、問題解決の肝は、「やりたいことを最短で精度高く実現させる」です。
ということで、本来プログラムは高度な技を駆使することが目的ではなく「問題を解決する手段」です。
つきつめれば、その問題を解決することができるならVBAでなくてもかまわない。
ただ、VBAしかわからない、VBAなら少しはわかる人にとって、その問題を解決する手段としてVBAは必須条件になる「だけ」です。
VBAでFTPを作る目的は、自分の仕事にあったファイル転送プログラムを手に入れること。
例えば、中古自動車販売でホームページに最新のデータをアップロードしたい。
エクセルのデータを指定するとエクセルがHTMLファイルを自動生成してくれる。
画像と結びつけるのもエクセル。
最終的にそのデータセットを手動でFTPにアップロード・・・は面倒。
ボタン一つでHTMLを作って画像のセットを作ってくれて、さらにサーバーにまでアップロードしてくれたら。。。
楽じゃないですか?
例えば、何サイトも運営していてそれぞれ別のサーバー。
それらをボタン一つですべてのサイトのデータを一括で受信。
それを更新したら、またボタン一つですべてのサーバーにアップロードしてくれる。
楽じゃないですか?
既存のFTPプログラムだと、1サイトづつ接続してファイルアップロード。
次のサイトに接続して・・・と、人の手が離れる時間がありません。
単なるデータの送信、受信に人が張り付いていないといけません。
それがボタン一つ押して、ランチにでかける。。。楽じゃないですか?
エクセルで送受信先を一覧にしておけば、ファイルの送受信が完了する。
そういう目的をもったFTPプログラムを作ります。
VBA で FTP プログラムを作るまとめ
実際のファイルの送受信は、外部プログラム、もしくはWINDOWSに標準で入っているFTPプログラムをDOSのコマンドラインを呼び出して行うことでエクセルVBAで簡単にFTPプログラムを作ることができます。さらにわがままな部分は、PERLプログラムを書いて動かします。
■