- PR -

ファイルダウンロードと画面更新を同時に行う方法?

投稿者投稿内容
はやし
常連さん
会議室デビュー日: 2007/10/31
投稿数: 23
投稿日時: 2007-11-16 13:26
べるさん、お返事ありがとうございます。
引用:

べるさんの書き込み (2007-11-16 11:31) より:
。。。リッチクライアントかなぁ。。


私もそんな気がします。
でも今更そっちで投稿し直すのって変ですかねぇ?

引用:

ん、保存じゃなくて開くことを想定しているのですか。私のところではどちらのコードでも開始時マクロは1回しか実行されませんでした。別の問題ですかね。
普通に開いて2回実行されたりしませんよね。


そうなんです、マクロを実行する事で、クライアントにある別のEXCELファイルや
テキストファイル等を、サーバにコピーする処理を行いたいので保存ではなく
開くことを想定しています。

もう少し詳しく説明させて下さい。
先ずアンカをクリックすると画面の真っ白な別ウィンドウが現れ、
「開こうとしているドキュメントにはマクロが含まれています。
マクロには、コンピュータに問題を引き起こすウィルスが含まれて
いることがあります。・・以下省略」の横長のメッセージが表示されます。

この時「はい」をクリックするとマクロを起動が走ります。
一連の処理を終え、マクロと別ウィンドウが閉じると今度はEXCELが立ち上がり、
マクロ有効/無効を選択するダイアログが表示されます。
その時、このEXCELファイルは使用中になっていて、使用者は自分のマシンでした。
これを読み取り専用で開き、また一連の処理を終えるとEXCELは閉じ、自ウィンドウに
遷移先画面が表示された状態になります。

因みに、これを中身が空のEXCELファイルに変えて実行したところ、
ダウンロードダイアログは表示されず、別ウィンドウにEXCELのシートが
直接表示されました。何か指定が間違っているのでしょうか?
引用:

べるさんの書き込み (2007-11-14 18:57) より:
コード:
<a onclick="location.href='Default.aspx';" type='application/octet-stream' 
target="_blank" href='test.xls' >テスト</a>




このコードの'Default.aspx'の部分を、遷移先画面のURLに、'test.xls'の部分を
EXCELファイルのパスに変更しただけなのですが、べるさんの意図しているやり方と
相違はありますでしょうか?
はやし
常連さん
会議室デビュー日: 2007/10/31
投稿数: 23
投稿日時: 2007-11-19 16:37
こんにちは、はやしです。

問題が解決したわけではないのですが・・・
11月16日にべるさんから頂いたコメントをもう一度よく読み直して、
マクロが2回起動してしまう原因を調査してみたところ、以下の事がわかりました。
引用:

べるさんの書き込み (2007-11-16 11:31) より:
ん、保存じゃなくて開くことを想定しているのですか。私のところではどちらのコードでも開始時マクロは1回しか実行されませんでした。別の問題ですかね。
普通に開いて2回実行されたりしませんよね。



マクロが2回起動してしまうのはEXCELの終了の仕方が問題だったようです。
現行ではEXCELファイルの終了時にApplication.quitだけをしていた為、ブック自体は
終了出来ておらず、マクロが再度起動してしまったものと思われます。
これなら2回目起動時に「読み取り専用」となっていた事も納得出来ます。

参考URL↓
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_060.html

なのでApplication.quitの後に、thisWorkbook.Close False と追記したところ、
マクロが2回起動される事はなくなりました。

しかし、マクロ起動時に「開こうとしているドキュメントにはマクロが含まれています。
マクロには、コンピュータに問題を引き起こすウィルスが含まれて
いることがあります。・・以下省略」のメッセージが表示されるのは変わらず、
現在このメッセージが表示されない方法を探しています。

Web上から直接ファイルを開こうとするとこうなるように思えるのですが、
じゃあファイルダウンロード用のダイアログを出すってなると、セキュリティの問題
でブロックされてしまいますし・・・。

引用:

GENZOさんの書き込み (2007-11-15 12:33) より:
この方式をとっても「セキュリティ保護のため・・・」は出てしまうと思います。


GENZOさんに教えて頂いた方法を試しましたが、仰っていたようにやはり
ブロックされてしまいました。

べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-11-19 18:48
引用:
しかし、マクロ起動時に「開こうとしているドキュメントにはマクロが含まれています。
マクロには、コンピュータに問題を引き起こすウィルスが含まれて
いることがあります。・・以下省略」のメッセージが表示されるのは変わらず、
現在このメッセージが表示されない方法を探しています。

エクセルで、[ツール]→[マクロ]→[セキュリティ]でセキュリティレベルを[低]にすれば
でなくなりますが、(推奨しません)と書いてあるとおり、警告が出るのが妥当かと。

引用:
Web上から直接ファイルを開こうとするとこうなるように思えるのですが、

上記私の記述が正しければ、当方では直接エクセルを開いたときも警告メッセージでてます。

引用:
じゃあファイルダウンロード用のダイアログを出すってなると、セキュリティの問題
でブロックされてしまいますし・・・。

あれ、そちらではダウンロードダイアログでてないんですね。こちらでは出てます。
マクロの警告とIEがブロックするのは多分関係ないですよ。
はやし
常連さん
会議室デビュー日: 2007/10/31
投稿数: 23
投稿日時: 2007-11-19 19:58
べるさん、お返事ありがとうございます。
引用:

べるさんの書き込み (2007-11-19 18:48) より:
エクセルで、[ツール]→[マクロ]→[セキュリティ]でセキュリティレベルを[低]にすれば
でなくなりますが、(推奨しません)と書いてあるとおり、警告が出るのが妥当かと。


セキュリティレベルを下げるのはNGなので、警告が出るのは仕方ないのですね・・・。

引用:

上記私の記述が正しければ、当方では直接エクセルを開いたときも警告メッセージでてます。


私の方は、教えて頂いた方法(べるさんの意図している記述になっているかわかりませんが)では「開こうとしているドキュメントにはマクロが含まれています。
マクロには、コンピュータに問題を引き起こすウィルスが含まれていることがあります。・・以下省略」の横長のメッセージが表示されます。
またEXCELファイルを直接開いた時は、マクロ有効/無効を選択するダイアログが表示されます。
引用:

あれ、そちらではダウンロードダイアログでてないんですね。こちらでは出てます。
マクロの警告とIEがブロックするのは多分関係ないですよ。


そうなんですか?
なるほど・・・やっぱり何かやり方を間違ってるかも知れないので、もう一度自分のソースをよく見直してみます。
ありがとうございました。
はやし
常連さん
会議室デビュー日: 2007/10/31
投稿数: 23
投稿日時: 2007-12-05 14:48
【解決】
こんにちは、林です。

結論までだいぶ日が開いてしまいましたが、一応解決しました。
結論から言うと、一番最初のソースそのままで、一切変更無しという
方向でお客さんに納得して頂きました。

マクロが起動する際に、警告メッセージが出てしまうのがNGだと
聞かされていたのですが、それがOKになったので、
何の変更も加えなくて良くなってしまったのです。

沢山の方に色々なアドバイスを頂いたのに、結果がこんな形で申し訳ないです。
でも、今回皆さんのおかげで本当に勉強になり、大変感謝しています。
有難うございました。

またお世話になると思いますが、その際は宜しくお願いします。

スキルアップ/キャリアアップ(JOB@IT)