- ベストアンサー
サーバー上のブックを開けない場合の対処法
- サーバー上でエクセルブックを開けない場合、待ち時間が長くなることがあります。エラーメッセージを早く表示する方法について教えてください。
- エクセルVBAでサーバー上のブックを開く際に、ネットワーク障害などの問題で待たされることがあります。Ctrl-Breakも効果がなく、待ち時間が長いです。この問題を回避する方法を教えてください。
- サーバー上でエクセルブックをオープンする際に、ネットワーク障害などで待たされることがあります。数分待ってからエラーメッセージが表示されます。待ち時間を短縮し、早くエラーメッセージを表示する方法はありますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> なんとかこれを回避して、早い時間にエラーメッセージを出して > コントロールを戻すことはできないでしょうか? ネットワークに問題があるなら、事前に Dir などで調べても恐らく同様に 時間がかかってしまうかもしれません。ただ、Workbooks.Open よりは 早く結果が返ってくるかもしれませんので、お試し下さい。 --> 正しいパスを渡した Dir の結果が "" なら HOST が生きていない --> と判定する もう一つ方法を。 ネットワークの異常を調べる際には、まずコマンドプロンプトで Ping コマンドを使用し、目的の HOST から応答があるか調べます。 この結果に応じて Workbooks.Open してみれば? VBA でやるなら 1. DOS コマンドのリダイレクト http://www.f3.dion.ne.jp/~element/msaccess/AcTipsGetDosResult.html --> 結果に Reply という文字列が含まれれば OK、Timeout なら NG 2. API http://www.sanryu.net/acc/tips/tips283.htm 3. WMI(注意)WinXPなど特定のOSに限定されます http://www.microsoft.com/japan/technet/scriptcenter/scripts/hardware/monitor/hwmovb07.mspx http://pwp1.atcms.jp/mokurin/index.php?cmd=read&page=WMI%2F%A5%CD%A5%C3%A5%C8%A5%EF%A1%BC%A5%AF などの方法があります。サンプルを書こうかと思いましたが、Google で [ping vba] をキーワードで調べたら上記のように良質のサンプルが ヒットしましたので、参考 URL のご紹介にしときます。 ただし、、セキュリティーソフトなどの影響で応答をかえさない PC が 有りますので、考慮する必要がありますけどね。
お礼
回答ありがとうございます。 使用環境を忘れていました。 Windows2000Pro Office2000がメインです。 サブにWindowsXP Pro Office2003を使用しています。 3の方法がすっきりしていいのですが、Window2000では動きませんでした。 2又は1の方法でやってみたいと思います。