解決済み

ExcelのVBAの正規表現で二重引用符を含む文字列を検索できるようにしたい

  • すぐに回答を!
  • 質問No.4170411
  • 閲覧数869
  • ありがとう数7
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 61% (142/232)

二重引用符を含む文字列を検索できるようにするには
下記の記述の re.Pattern = "<hr class=\"separate\">"
の部分をどのように直せばよいのでしょうか?

Sub tagCount()

Dim cnt As Integer
Dim IE As Object
Dim HTML As String

Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate ("http://www.yahoo.co.jp/")
While IE.busy: Wend
While IE.Document.readyState <> "complete": Wend
HTML = IE.Document.body.innerHTML
IE.Quit

Dim re As RegExp
Dim mc As MatchCollection
Dim m As Match

Set re = New RegExp
re.Pattern = "<hr class=\"separate\">"
re.Global = True
re.IgnoreCase = True
Set mc = re.Execute(HTML)
MsgBox mc.Count

End Sub

ご存知の方がおられましたらご回答をよろしくお願いします。

使用OS:Windows XP
使用ソフト:Microsoft Excel 2003

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 62% (785/1258)

こんにちは。

とりあえずパッと見で、試してませんが、

  > re.Pattern = "<hr class=\"separate\">"
     ↓
   re.Pattern = "<hr class=""separate"">"

のように、ダブルクウォートをエスケープ(2重に)すれば良いの
ではないでしょうか。

また、単純に HR タグだけカウントしたい、つまり

  class="separate"

などの要素を問わないのであれば、正規表現を使わなくても、

  MsgBox IE.Document.getElementsByTagName("hr").Length

という簡易な手もあります。

あと、HR タグなら問題ないと思いますけど、タグ数をカウントしたい
のであれば、

  > HTML = IE.Document.body.innerHTML

では、<body>~</body> タグ内にあるソースだけがカウント対象となって
しまいますから、ヘッダー部 <head>~</head> も含めて全ソースを対象
にするなら、

   HTML = IE.Document.documentElement.outerHTML

です。
お礼コメント
nana_watuki

お礼率 61% (142/232)

エスケープは\"ではなく""なのですね。
ご回答いただきどうもありがとうございました。
投稿日時 - 2008-07-12 18:32:59
感謝経済

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 64% (133/205)

こんにちは

re.Pattern = """<hr class=\""" & "separate\" & """>"""
でどうでしょうか?

"~"を文字列として代入する場合
"""~"""でできると思います。
ただ、今回の場合、"が間にもあって、最初と最後だけでは
途中の"で構文エラーになりますので、3つに分けて&でつないで
みました。

一応、マクロで検証した結果、検索できたので大丈夫だと思いますが
以上、ご参考まで
お礼コメント
nana_watuki

お礼率 61% (142/232)

やってみたところ自分の環境では検索できませんでした。
いろいろ試したところ re.Pattern = "<hr class=separate>"とすると
うまく検索できるようです。(HTML取得時にタグの中の「"」を取り除いて取得するため?)

ご回答いただきどうもありがとうございました。
投稿日時 - 2008-07-12 18:40:24
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


感謝指数によるOK-チップ配布スタート!

ピックアップ

ページ先頭へ