投稿時間:2004/07/22(Thu) 17:42 投稿者名:バルデラマ
Eメール:
URL :
タイトル:Re^3: WebBrowserにてEXCELの値を取得する
ポップアップメニューが表示されてから選択可能になるまでの間の解消ですが、 以下プロシージャ内で > > Private Sub xlSheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean) > > PopupMenu mnuTest > > Cancel = True > > End Sub DoEventsをあらゆる箇所に入れてみたり、Cancel=Trueを先に 処理してみたりしてみましたが、解消できませんでした。
間があくときもあれば、まったくあかずにスムーズな場合もあり原因がわかりません。 同じセルを連続で選択すると、必ず遅くなってしまうようです。
たびたびすみませんが、解決方法をご存知の方 お知恵をお借りできればと思います。よろしくお願いします。
ちなみに... いろいろと確認しているときに以下メッセージのような感じのものが出力されました。 「他のOLEが使用しているので終了するまで待ちます。」 (すぐに消してしまったので正しい内容ではありません..こんな感じの内容でした...) 何か関係があるのでしょうか?
> おおっ!!できました。 > WithEventsなんてあったんですね、ありがとうございます。 > > でも、確かにクリックできるまでに間がありますね...。 > 間の解消は、自分でも調査してみたいと思います。 > が、もし何かわかりましたら教えてください。 > > りっとっと さん、本当にありがとうございました。 > > > できなくもないですけどね > > Private xlBook As Excel.Workbook > > Private WithEvents xlSheet As Excel.Worksheet > > Private Sub Form_Load() > > WebBrowser1.Navigate "c:\book1.xls" > > End Sub > > Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant) > > Set xlBook = pDisp.Document > > Set xlSheet = xlBook.ActiveSheet > > xlBook.Application.Visible = False > > End Sub > > > > Private Sub xlSheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean) > > PopupMenu mnuTest > > Cancel = True > > End Sub > > > > とこんな感じで、エクセルのシートオブジェクトをWithEventsステートメントつきで宣言すれば > > xlSheetでのイベントが拾えますので、BeforeRightClickイベントで、引数のCancelにTrueを入れれば > > キャンセルされ、エクセルのポップアップメニューは表示されません。 > > サンプルを実行するとわかりますが、PopupMenuでVBのメニューを表示させクリックもできるのですが > > クリックできるまで間が生じてしまいます。この間をどうにかして消せないものかな
|