掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
WebブラウザコントロールでリッチテキストボックスのSelLengthと同じ情報を取得するには? (ID:89956)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> WebBrowser1.Documentというイベントを認識することが WebBrower1.Documentはイベントではありません。プロパティです。 そのプロパティから、固有のオブジェクトを取得し、 そのオブジェクトごとに適したイベントを使いましょう、という事です。 具体的には、個々のオブジェクトに適したタイプライブラリを参照設定し、 それらを、「WithEvents」宣言付きの変数で受け取ります。 Private WithEvents Body As MSHTML.HTMLBody Private WithEvents Sheet As Excel.Worksheet Private WithEvents FolderView As Shell32.ShellFolderView : : そして、ドキュメントの読み込み完了後、それぞにあった型の変数に、 WebBrowser1.Document を渡してやればOKです。 Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) If TypeOf WebBrowser1.Document Is MSHTML.HTMLDocument Then Set Body = WebBrowser1.Document.Body ElseIf TypeOf WebBrowser1.Document Is Excel.Workbook Then Set Sheet = WebBrowser1.Document.Sheets(1) ElseIf TypeOf WebBrowser1.Document Is Shell32.ShellFolderView Then Set FolderView = WebBrowser1.Document ElseIf ……… : : End If End Sub そうすれば、個々のイベントを拾うことができるようになります。 Private Function Body_onselectstart() As Boolean Debug.Print "HTML:選択開始" Body_onselectstart = True '選択を許可 End Function Private Sub Sheet_SelectionChange(ByVal Target As Excel.Range) Debug.Print "Excel:選択範囲変更" End Sub Private Sub FolderView_SelectionChanged() Debug.Print "フォルダ:選択項目変更" End Sub : : オブジェクトによっては、WithEvents付きの変数として宣言できない物も ありますので、全てのドキュメントについて、上記のような方法で 取得できるというわけではありませんが、HTMLページであるならば、 上記のように、MSHTML.TLB のライブラリを利用する事ができるでしょう。 # HTMLの場合には、タイプライブラリを使わずにイベントを取得する方法も # ありますが、最初のうちは、タイプライブラリを使った方が楽でしょう。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.