アプリ版:「スタンプのみでお礼する」機能のリリースについて

HTMLのソースコードを取得する下記のVBAを実行すると
タグの部分が大文字(<H1>等)になってしまいます。
どうすれば小文字のタグのまま取得することが出来るのでしょうか?

使用OS:Windows XP
使用ソフト:Microsoft Excel 2003
ご存知の方がおられましたらご回答をよろしくお願いします。

Sub sample()
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
MsgBox HTML
IE.Quit
End Sub

A 回答 (4件)

パターンに自身はないですが・・・



Sub sample_2()
Dim RegExp As Object
Dim Match As Variant

Set RegExp = CreateObject("VBScript.Regexp")
RegExp.Pattern = "<\/?[A-Z]+([ 0-9]|>){1}"
RegExp.Global = True

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
MsgBox HTML

For Each Match In RegExp.Execute(HTML)
HTML = Replace(HTML, Match.Value, StrConv(Match.Value, vbLowerCase))
Next

MsgBox HTML
IE.Quit
End Sub

こうゆう感じの事でしょうか?
    • good
    • 0

こんにちは。



>どうすれば小文字のタグのまま取得することが出来るのでしょうか?
#1さんのおっしゃるとおり必要ないです。HTMLコードは、タグで挟まれているだけでよいわけで、タグの中の大文字小文字は、関係ないと思います。IE から、ソースを取ればよいのでは?

あえて、VBAが分からないのなら、Wordやテキストエディタで置換すればよいと思います。それに、本では読んだことがあるのですが、ソースの二次的利用ではありませんか?

もう、回答は出てしまっているけれども、そういう質問というのは、きちんとした理由が必要ではないでしょうか?
    • good
    • 0

タグといえば < > で囲まれているのがルール。


というわけで< >で抜き出してそれぞれに小文字変換を加えてみるのはどうでしょうか。
ファイルの読み込みとかしたことないので詳しくないのですが、
変数 HTML はstring型でしょうか?

HTMLを取得した後、以下のコードを挿入してみるとどうでしょう。
変数宣言は省略。
--------------------------------
tag_start = 0
tag_end = 0
For i = 1 To Len(HTML)
moji = Mid(HTML, i, 1)
If moji = "<" Then
tag_start = i
ElseIf moji = ">" Then
tag_end = i
HTML = Left(HTML, tag_start - 1) & StrConv(Mid(HTML, tag_start, tag_end - tag_start + 1), vbLowerCase) & Right(HTML, Len(HTML) - tag_end)
tag_start = 0
tag_end = 0
End If
Next i
--------------------------------
文字列から < > を見つけて抜き出して、小文字に変換したものを、
タグ前後の文字と再度くっつけて変換してるように見せます。
これを < > の個数分繰り返します。
    • good
    • 0

http://www.nishishi.com/blog/2006/01/capital_or_ …
大文字でも小文字でも良いルール。
従ってどちらもありえる。
大文字なら小文字に変えれば済むことではないですか。なぜこんな質問が出るのか。
Sub test01()
a = "HTML"
b = StrConv(a, vbLowerCase)
MsgBox b
End Sub
参考
http://officetanaka.net/excel/vba/function/StrCo …

この回答への補足

StrConvを使用すると例えば<H1>sampleTEXT</H1>の場合
<h1>sampletext</h1>となってしまいます。

あくまで小文字に変えたいのはタグだけです。

補足日時:2009/04/30 00:55
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!