WinActorというRPAツールで、VBScriptを動かしています。
VBScriptでWebページの"hogehoge"という単語を探したいと考えています。
もし、あれば、”あったよ!”とMsgBoxで表示します。
下記のコードで合っていますか?気になる箇所があれば教えてください。
ーーー<Start of code>ーーーー
Option Explicit
On Error Resume Next
Dim temp
Dim arraytemp
Dim num
Dim i
temp = document.body.innerHTML
temp = Replace(temp,CStr(vbCrLf)," ")
temp = Replace(temp,CStr(vbLf)," ")
'でvbCrLfとvbLfを半角スペースに置換する。
Do
If InStr(1,temp," ") > 0 Then
temp = Replace(temp," "," ")
Else
Exit Do
End If
Loop
'で半角スペース2個を半角スペースに1個に置換する。
arraytemp = Split(temp," ")
num = UBound(arraytemp)
For i = 0 to (num - 1)
If arraytemp(i) = "hogehoge" Then
MsgBox "あったよ!"
Else
End If
Next
ーーー<End of code>ーーーー
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No1です。
>HTMLは無視して、innerHTMLで探して下さい。
またしても意味不明ですな…
マークアップは無視したいということのようには思えるけれど、それならなぜにinnerHTML??
>やりたいことは、arraytempに配列を入れて、インデックスで"hogehoge"を探しています。
方法に関しては、お好きにどうぞとしか言えませんが、
<div>hogehoge</div>
は、無視するってことなんでしょうかね・・・
質問者様のなさりたいルール通りにできているのなら、そのままでよろしいのではないかと。
No.1
- 回答日時:
こんにちは
なさりたいことがよくわかりませんが・・・
>"hogehoge"という単語を探したい
だけであるなら、改行を変換したりワードごとに分解したりしなくても良いのではないでしょうか?何を目的としているのかイマイチわかりかねます。
特に、
If InStr(1,temp," ") > 0 Then
temp = Replace(temp," "," ")
なんてのも意図不明。
(文字コードまで見ちゃったけど、皆、32だった。汗)
ワードごとということは「ahogehoge」とか「hogehogehoge」などは対象としてカウントしないという意味なのでしょうか?
存在を探すだけなら、直接に InStrでもよさそうだし、スペース等も考慮するなら正規表現で「\shogehoge\s」みたいなパターンで考えるとか・・・
両端も考慮するなら、(^|\s)hogehoge(\s|$) とかかも。
一番疑問なのは、HTMLの表示内容だけから探したいのか、要素属性も含めてなのかもわからない。
ってか、ご提示の内容だと
<div class="fugafuga hogehoge piyo">意味あるんか?</div>
なんてのも取っちゃいそうだけれど、はたしてそういうつもりなのでしょうか?
あれっ!? スペースにこだわるようだと…
<div>hogehoge</div>
は、カウントされないけれどいいのかなぁ・・・??
ご質問にインラインで回答させていただきます。
>ワードごとということは「ahogehoge」とか「hogehogehoge」などは対象としてカウントしないという意味なのでしょうか?
そのとおりです。"hogehoge" のみを探します。
あと探す際に、HTMLは無視して、innerHTMLで探して下さい。
arraytemp = Split(temp," ")
num = UBound(arraytemp)
やりたいことは、arraytempに配列を入れて、インデックスで"hogehoge"を探しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2022/04/01 12:11
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- C言語・C++・C# C言語 leetcode21 Merge Two Sorted Lists 2 2022/04/24 19:35
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pythonでのカーソル移動がずれる
-
質問です。 新規登録ボタンが全...
-
【ヒトの神秘】美男美女から何...
-
min-heightとheightの違いについて
-
ブログのサイドバーが下にくる
-
CSSで菱形の画像サムネイルを表...
-
borderをページの下まで伸ばしたい
-
Firefoxで見るとli要素レイアウ...
-
【CSS】imgタグを、親要素の幅...
-
CSS(0の単位)について
-
ウインドウを小さくするとbody...
-
複数のボタンを等間隔に、かつ...
-
子孫セレクタの読み方をおしえ...
-
超音波で洗脳。
-
Django 明細行にてボタンを押下...
-
UDP通信を使うチャットプログラ...
-
W3Cのソースコードの検証サービ...
-
divとpの使いわけ
-
CSS初心者です。わかる方教えて...
-
リンクの下線と文字の間隔を開...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ASP.NETでプレーンなページに文...
-
pythonでのカーソル移動がずれる
-
cnt <= (others => '0'); の意...
-
Excel VBAでのIE操作でクリック...
-
検索結果がツリー状に表示され...
-
VBAでの素数の求め方
-
秀丸で複数行コメントアウトを...
-
質問です。 新規登録ボタンが全...
-
chromedriverのver-upで動作不...
-
safariで見るとページ上部に余...
-
Firefoxで別ページのアンカーリ...
-
行頭から全角で3文字位さげた...
-
プログラマーの方に質問です。 ...
-
背景が動くWEBページの作り方に...
-
css リンクの色が全部変わって...
-
Ajaxで文字列を表示したいです。
-
同じIE8なのに機種によってmarg...
-
携帯サイトの背景色
-
VBA : QueryTableでのスクレイ...
-
htmlの文字が縦書きになる
おすすめ情報