WebBrowserコントロールを使ってページ内検索をするには?


アルス  2008-10-07 23:23:00  No: 140590

初投稿になります
以前にも同じ質問のスレがありまして
そこを見てやってみたのですが
できなかったので新たに質問させていただきます

魔界の仮面弁士様が回答しておられました
ソースを載せさせていただきますが

Private Sub Command1_Click()
    Dim Doc As Object       'MSHTML.HTMLDocument
    Dim Body As Object      'MSHTML.HTMLBody
    Dim objRange As Object  'MSHTML.IHTMLTxtRange
    Dim BMK As String
    'Dim L As Long
    
    
    '検索文字列を入れておいてください。
    If Len(Text1.Text) = 0 Then Exit Sub
    
    Set Doc = WebBrowser1.Document
    Set Body = Doc.Body
    Set objRange = Body.createTextRange
    
    '≫≫≫≫≫ 検索開始
    'For L = 0 To 255
    '   If objRange.findText(Text1.Text) = False Then Exit For
    Do While objRange.findText(Text1.Text)
        '最初に見つかった位置を保存しておきます。
        If Len(BMK) = 0 Then BMK = objRange.getBookmark
        
        '検索した語句を黄色く反転させる。
        objRange.execCommand "BackColor", False, "YELLOW"
        
        '論理カーソル位置を、検索した語句の末尾に移動させる。
        objRange.collapse False
    Loop
    'Next L
    '≪≪≪≪≪ 検索終了
    
    'ついでに、最初に見つけた語句の位置までスクロールさせています。
    If Len(BMK) Then
        objRange.moveToBookmark BMK
        objRange.scrollIntoView
    End If
    
    '最後は一応、後始末を。
    Set objRange = Nothing
    Set Body = Nothing
    Set Doc = Nothing
End Sub

このソースを使わせてもらったのですが
実行すると

 objRange = Body.createTextRange

この行でエラーがおこり

公開メンバ 'createTextRange' は型 'HtmlElement' に見つかりませんでした。

となってしまいます

自分の力ではどうにもならないので
どなたかわかりましたら教えてください><


魔界の仮面弁士  2008-10-07 23:37:34  No: 140591

VB2005 / VB2008 で開発していたりはしませんか?
(そのコードは、VB6 用の物です)

ActiveX 版 WebBrowser では動作するかと思いますが、
.NET 2.0版 WebBrowser だと、幾らかの修正が必要になるでしょう。

まずは、お使いの開発環境を教えてください。

> 魔界の仮面弁士様が回答しておられました
> ソースを載せさせていただきますが

「引用」と「転載」の違いをどうこう言う気はありませんが、
こういう時には可能な限り、元記事の場所を明示した方が良いですよ。


アルス  2008-10-10 00:28:36  No: 140592

>魔界の仮面弁士様
ご回答ありがとうございます
おっしゃるとおり私の環境がVB2005でした><

環境というのはVB2005ということだけで大丈夫ですか?
あまり詳しく分かりません^^;

元記事は
2004/08/18(水) 16:20:43  にともタソさんが投稿した記事ですm(_ _)m


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加