- PR -

WebBrowserでExcel表示に関する質問 (VB.NET)

投稿者投稿内容
前屈の達人
常連さん
会議室デビュー日: 2003/08/26
投稿数: 25
お住まい・勤務地: 大阪
投稿日時: 2003-10-22 10:14
度々、ご丁寧な回答を頂きましてありがとうございます。

   引用: --------------------------------------------------------------

     Jittaさんの書き込み(2003-10-21 09:01)より:

      閉じることができない、のは仕様です。閉じてはいけません。
      閉じてはいけないのは、Navigateで表示されているからです。
      無理矢理閉じるとどうなるか、わかりません。

   --------------------------------------------------------------------

なんとなくですが、そんな予感がしておりました・・・。

今回の問題は、表示しているものを別のものに変える方法で対応してみたいと思います。


しかしながら正直言いますと、未だ納得していない部分があります。

<納得していない部分> BrowserにNavigateしていない場合
「Explorer」コントロールは、Windowsフォーム上で白く表示されるのですが
一度 Navigate した Browser を初期状態(?)に戻すことは、できませんでしょうか。
(これができれば、Excelのプロセスを終了することもできるのでは?)

という考え方なのですが、これも間違っていますでしょうか。

もしよろしければ、意見なども忌憚無く沿えて頂ければと思います。
毎度、質問ばかりで申し訳ありません。
どうぞよろしくお願い致します。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-10-22 12:21
引用:

前屈の達人さんの書き込み (2003-10-22 10:14) より:
<納得していない部分> BrowserにNavigateしていない場合
「Explorer」コントロールは、Windowsフォーム上で白く表示されるのですが
一度 Navigate した Browser を初期状態(?)に戻すことは、できませんでしょうか。
(これができれば、Excelのプロセスを終了することもできるのでは?)


 えっと、確認させてください。処理の流れは、次のようになりますか?

1.WindowsアプリにCOMオブジェクトのWebBrowserを貼り付け、
 何らかのアクションでEXCELファイルを表示させる
2.何らかのアクションで、プログラム内より、表示中のEXCELファイルを変更する
3.変更したファイルはプログラム内で保存する
4.WebBrowserの表示をクリアする

で、4の処理がわからない、ということでよろしいでしょうか。

 プロジェクトを家で作ったので、今は調べる環境がないのですが(もう一回作れって?^^;)、「戻る」みたいなメソッドはないでしょうか?または、Navigate=""の様に、空文字列を入れてみるとか。
 EXCELの終了はきちんと確認しないと、次にEXCELを手動で開こうとしたときに不都合が起こる可能性があります。というか、Navigateした時点でsheetが最大化してないし…。まぁ、IEでやっても同じだから仕方ないけど。
前屈の達人
常連さん
会議室デビュー日: 2003/08/26
投稿数: 25
お住まい・勤務地: 大阪
投稿日時: 2003-10-24 08:55
お返事が大変遅くなりましたこと深くお詫び致します。
親身に相談に乗って頂きありがとうございます。

Browserのメソッドを色々と調べてみたのですが、
実は、未だ未解決のままでして・・・
もう少し調べてみたいと思います。

今回のプログラムの処理について詳しく書きます。
(せっかくJittaさんに書いて頂いたのに申し訳ありません)
*WindowsアプリにButton,COMオブジェクトのWebBrowserを貼り付ける
*以下、Buttonを押した時のプログラムの処理の流れです。
1.WebBrowserの表示をクリアする(ボタンが2回以上押されたときのため)
2.既存のExcelファイルをプログラム内で編集する
3.Excelを上書き保存する
4.Excelを表示する(Navigate)

なのですが、処理の順番に問題があるように思いますので、
もう少し試してみたいと思います。

また、ご意見等頂けますと助かります。
どうぞよろしくお願い致します。
前屈の達人
常連さん
会議室デビュー日: 2003/08/26
投稿数: 25
お住まい・勤務地: 大阪
投稿日時: 2003-10-27 14:40
ご無沙汰しておりました。
こんにちは。

あれから色々やってみたのですが、まだうまくいかない箇所があるので
またご教授頂きたく存じます。

前回までは、WebBrowserをクリアするにはという所で未解決のまま終わってしまいましたが、
これにつきましては、Jittaさんからご教授頂きました「Navigatge("")」で解決しそうです。

解決しそうですというのは、まだそのあたりのからみで問題があるからでして・・・(^^;
前回までのコードで、上書き保存時に問題があるという書き方をしましたが、
上書き保存の方法に問題があるのではないか?という疑問につきあたりました

<現状>
・「同じ名前のファイルが存在します。上書きしますか?」というポップアップを出力せず
・上書き保存を敢行する
という内容を以下のようにコーディングしました。

<コード>
exapp.Application.DisplayAlerts = False
exbook.SaveAs(Filename:=strFileName)

実は、この方法では、1回目の保存時には文句無く通るのですが、
2回目には、1行目のポップアップを出さないコードでエラーを引き起こしてしまいます。
<エラーメッセージ>
HRESULTからの例外です。:0x800A03EC。

どうしてこのようなエラーがでるのでしょうか。
またどうすれば上書き保存がうまくできますでしょうか。
上書き保存の方法なども併せてお返事いただけると大変ありがたく思います。

どうも今回の問題は、頭をひねるものばかりで・・・正直参っております。
ご存知でしたらご教授願います。
どうぞよろしくお願い致します。

P.S. 前回の書き込みに「未だ未解決」という正しくない日本語を使いましたこと
この場をお借りしましてお詫び申し上げます。失礼致しました。

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