2013/08/13(火) [n年前の日記]
#1 [prog] Excel VBAでFTPをする方法について調べていたり
もしかすると、外部アプリとしてのFTPツールを呼び出さずに、Excel VBA だけでFTP転送できたほうが良かったりするのだろうか。と思えてきたので、そんなことができるのかどうかを調べてたり。
一応できるっぽい。ざっくり眺めた感じでは、BASP21.DLL を導入、かつ、呼び出して実現するやり方が、多く紹介されている印象。
また、API関数 + wininet.dll を使って、というやり方もあるようで。
更に、Windowsに標準で入ってる ftp.exe を呼んで行うやり方も見かけた。まあ、ftp.exe を呼び出すソレは、外部アプリを呼び出すやり方と違いはないわけだけど。別途FTPツールをインストールしなくて済むとか、動作確認を個別に行うことができるとか、そういったメリットはありそう。
しかし、Excel VBAで、どのファイルが更新されたか等の処理を全部書くのが面倒臭いなと。
別途FTPツールをインストールすることは許されていない環境なら、Excel VBA でどうにかする以外にないだろうと思うのだけど。そのあたりの制限が緩い状況であれば、外部のFTPツールに頼ったほうがいいだろう。てな気分になってきたので、調べることは調べたけれど、Excel VBA でそこまではやらないことに。
それにしても、Excel VBA って何でもできるな…。若干書きづらい印象はあるけれど、ここまで色々できるとは。
いや、やっぱりなんだか書きづらいけど。書く際に使ってるVBEは、そこそこ補完も効いてくれてイイ感じなのに、どうして書きづらいと思ってしまうんだろう。変数宣言のあたりがアレなのかな。でも、そのへんは、他の言語と違いはないはずで。Then や End If を書かなきゃいけないあたりかな。でも、Then はともかく End If 等は、どこでブロックが終わってるのか分かりやすいというメリットがありそうな。自分、VBAの何がしっくりこないんだろう…? 「オマケでついてる言語」等の偏見があるんだろうか?
一応できるっぽい。ざっくり眺めた感じでは、BASP21.DLL を導入、かつ、呼び出して実現するやり方が、多く紹介されている印象。
また、API関数 + wininet.dll を使って、というやり方もあるようで。
更に、Windowsに標準で入ってる ftp.exe を呼んで行うやり方も見かけた。まあ、ftp.exe を呼び出すソレは、外部アプリを呼び出すやり方と違いはないわけだけど。別途FTPツールをインストールしなくて済むとか、動作確認を個別に行うことができるとか、そういったメリットはありそう。
しかし、Excel VBAで、どのファイルが更新されたか等の処理を全部書くのが面倒臭いなと。
- FTPサーバにアクセスして、あちらに入ってないけどこちらに入ってるファイルをチェックしたり。
- タイムスタンプを取得して比較したり。
別途FTPツールをインストールすることは許されていない環境なら、Excel VBA でどうにかする以外にないだろうと思うのだけど。そのあたりの制限が緩い状況であれば、外部のFTPツールに頼ったほうがいいだろう。てな気分になってきたので、調べることは調べたけれど、Excel VBA でそこまではやらないことに。
それにしても、Excel VBA って何でもできるな…。若干書きづらい印象はあるけれど、ここまで色々できるとは。
いや、やっぱりなんだか書きづらいけど。書く際に使ってるVBEは、そこそこ補完も効いてくれてイイ感じなのに、どうして書きづらいと思ってしまうんだろう。変数宣言のあたりがアレなのかな。でも、そのへんは、他の言語と違いはないはずで。Then や End If を書かなきゃいけないあたりかな。でも、Then はともかく End If 等は、どこでブロックが終わってるのか分かりやすいというメリットがありそうな。自分、VBAの何がしっくりこないんだろう…? 「オマケでついてる言語」等の偏見があるんだろうか?
[ ツッコむ ]
以上です。