|
||||||
|
||
質問 |
||
| QNo.4151859 | InnerHtmlで取得したページから複数のセルで該当の文字列がないか検索したい | |
|---|---|---|
| 質問者:tak_017 |
InnerHtmlでページを取得して、その中に文字列が含まれるか検索させるExcel VBAを作ろうと思っています。 悩んでいるのが検索する文字列がひとつのセルではなく、複数のセルになった場合どう処理するのかということです。 その範囲内でひとつのセルの文字列を検索し、次のセルの文字列へ、を範囲内で繰り返させるにはどうすれば良いでしょうか。 〜中略〜 Dim mojiretsu As Long mojiretsu = ThisWorkbook.Sheets("キーワード").Range("A1:C10") If InStr(1, objIE.Document.Body.InnerHtml, mojiretsu) <> 0 Then MsgBox hiduke & "の含まれた記事があります。" Else End If これではセルがひとつだけ指定すれば上手く行くのですが、範囲にするとエラーになってしまいました。 |
|
困り度:
|
||
| 質問投稿日時: 08/07/04 23:25 |
||
回答良回答20pt |
|
| ANo.1 | こんにちは。 ループで検索語を切り替えながら順次処理していけば良いのでは? Dim src As String Dim r As Range ' // objIE には IE が参照され、目的とするページの Document が ' // 取得できているものとします src = objIE.document.body.innerText For Each r In ThisWorkbook.Sheets("キーワード").Range("A1:C10") If Len(r.Text) Then If InStr(src, r.Text) > 0 Then MsgBox r.Text & "の含まれた記事があります。" End If End If Next といった感じです。ところで。。。 > Dim mojiretsu As Long となってますが、変数名や話の流れから考えれば Dim mojiretsu As String ですよね? また、 > MsgBox hiduke & "の含まれた記事があります。" 変数 hiduke は初出ですが、いきなり、なぜ日付...? と、いろいろとツッコミどころが多いのですが、転記ミスですか? 単一セルの場合は成功とのことですが、この点から心配です^^; |
|---|---|
| 回答者:KenKen_SP | |
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/07/05 02:11 |
|
| |
| この回答へのお礼 | KenKen_SPさん ツッコミどころおおくて申し訳ないです(^^; ここに書き込んでいる間にも試行錯誤していたら転記ミスしてしまったようです。 For Eachだけて何とかなると思っていましたが、KenKen_SPさんの参考式のLenとの組み合わせで解決することができました。 ありがとうございましたm(__)m |