tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: ACCESS2010(VBA)のWebブラウザーコントロールの右クリック制御について
投稿日: 2016/06/26(Sun) 19:11
投稿者あーちゃ
魔界の仮面弁士様、レスありがとうございます。

> DLL そのものは提供されていなかった気がします。
> WBCustomizer.dll を作るためのサンプルコード(VC++ 5.0)なので、
> 自分でビルドする必要があったような…うろ覚え。

まさに魔界の仮面弁士様が、そう書かれている過去ログがありまして、目は通しておりました。
C++のコンパイラもないと出来ない、持ってる方に頼むしかない、とおっしゃってたと思います。

> 「いい方法」と言えるかどうかは分かりませんが、たとえば Form の Timer イベントで
> 現在のマウス座標を定期的に調べて(GetCursorPos API など)、
> そこからアクセシビリティ オブジェクトを得て判断するのはどうでしょう。
>
> UIAutomationClient ライブラリ(UIAutomationCore.dll) を参照設定して
> CUIAutomation オブジェクト → ElementFromPoint メソッドと辿るとか、
> あるいは古い方法ですが、AccessibleObjectFromPoint API あたりから
> IAccessible を得るとか。

UIAutomationClient を使用した方法も考えたのですが、
環境によってなのか、参照設定を行う際にエラーが発生するようでしたので、
(実際、私の環境では UIAutomationCore.dll の場所がデスクトップになってます)
作成物を配布するため、そのことを考慮すると選択できませんでした。



ご提示頂いた 3つめの方法を試し、リンクをクリックしたらVBAに処理を渡す、という処理には成功しました。

> 理由が良く分かりませんが、
>  Private WithEvents Doc As MSHTML.HTMLDocument
> などとして、HTML DOM のイベントバブルを辿るのも駄目なのでしょうか?
> http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200407/04070038.txt
> http://hanatyan.sakura.ne.jp/vb60bbs/wforum.cgi?mode=allread&no=12469&page=0
> http://www.gizcollabo.jp/vbtomo/log/archive/vbqanda2_403_2.html

全く javascript を使えない、という訳ではないのですが、単純に用いない方法があれば
VBA のみで実装してみたい、というのが本当のところでした。
(html を毎度生成していて、付随するコードで煩雑になるのを避けたいというのも少しあります)
ただ、仰る通り、javascriptのイベントバブルを辿らない限りは、
今の私の技量では実現できなさそうですので、考え直したいと思います。

先の目途も立ちそうですので、ここでクローズさせて頂きます。
分かりやすいご説明をして下さり本当にありがとうございました。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。