タイトル | : Re^7: WebBrowserコントロールとMicrosoft HTML Object Library |
記事No | : 12714 |
投稿日 | : 2008/07/05(Sat) 22:50 |
投稿者 | : sayman |
返信ありがとうございます。
> 他にいい方法があるかも知れませんが、選択した文字をそのHTML内に何箇所あるか > 調べ(Split 関数等)複数あるなら、txtRange.moveEnd で選択範囲を広げ、一意に > なるようにすれば、あとは、その文字で、Instr 関数等でしらべれば、その最初の > 選択した文字の出現位置が特定できます。
確かにできそうなのですが、処理に時間がかかりそう (テキストが膨大な場合があり初期で全部サンプルと入っているので) なのとこの記事を見る前に JavascriptでクリップボードにコピーしてVBで取得する方法を実装してしまいました。 かなり強引な方法でJavascriptを切ってたらどうするのかという問題点もありますが 以下がソースです
-------------HTML---------------- <html> <head> <title>イベント</title>
<script> function PutData(str){ var Dstr Dstr = document.getElementById('id1').innerHTML; clipboardData.setData("Text", Dstr); } </script> </head>
<body> <span id="id1" onClick="PutData('id1')"> <!--&&&COS:1-->あいうえお<!--COE--> </span>
<span id="id2" onClick="PutData('id2')"> <!--&&&COS:2-->あいうえお<!--COE:2--> </span> </body> </html> ----------------------------------------------- ---------------------VB側---------------------- Option Explicit Private WithEvents body As HTMLDocument
Private Function body_onclick() As Boolean Debug.Print Clipboard.GetText End Function
Private Sub Form_Load() Me.WebBrowser1.Navigate "C:\test.html" End Sub
------------------------------------------------ これで何とか・・・ほんとに微妙なところですが 実装出来ました。
あと、WebBrowserコントロールでページを表示するときに、 たまに「実行時エラー -2 fffffffe」 「実行時エラー -6 fffffffa」 「実行時エラー -8 fffffff8」 とかが出るのはしょうがないのでしょうか? 処理が終わる前に別ページに飛ぼうとしたりするとでたりするのもなのでしょうか?
「実行時エラー -2 fffffffe」 はdoeventsだったりon error resume next だったりを入れて出なくなった? のですが 「実行時エラー -6 fffffffa」 「実行時エラー -8 fffffff8」 はどう回避すればいいのかわかりません。
早くページの行き来をすると出るみたいなのですが 回避方法はあるのでしょうか?
|