Outlookのメール受信イベントで対象メールだったらZip圧縮(パスワード付き)されている添付ファイルを解凍する処理。
どうにもプログラムからパスワードを与えることが出来ずパスワード入力のダイアログが出てしまう。
昨日1日調べたりデバッグしても解決しなかった。
このままでは先に進まないので、不本意ながらフリーソフトの力を借りることにした。
7-ZipというソフトをShell関数で呼び出しコマンドライン引数でパスワードを設定することで無事解凍することができた。
そこまではよかったんだけど、解凍できたはずのExcelファイルを
For Each fileObj In fileSystemObj.GetFolder(varFilePath).Files
なんてやって拾おうとするんだけど、拾えない。
デバッガ上では問題なく拾える。
もちろんファイルも出来ている。
いろいろやってみると、どうやら For Each が走るのが早すぎるみたいで、解凍後にSleepを1000msほど入れてみるとやっと動いた。
まだ解凍できる前に7-Zipから返って来るんだろうね。
しっかし、Sleep を入れるってどうよ?
まったく腹立たしい。
--
☁
Nessun commento:
Posta un commento