0
属性名( "charset")を持つタグ( "meta")のすべての属性値を取得します。 私のマクロの結果として、私は見ることが予想さ:VBAでHTMLDocumentオブジェクトを使用して属性名でタグの属性値を取得するにはどうすればよいですか?
1/4 element "charset" = UTF-8
が、私は得る:
1/2 element "charset" = UTF-8
2/2 element "charset" = UTF-8
私がミスをした場合は?
Option Explicit
Sub ParseAnAttr()
Dim MetaTags As String, i As Integer, j As Integer
MetaTags = ""
MetaTags = MetaTags & "<meta charset=""UTF-8""/> "
MetaTags = MetaTags & "<meta name=""ResourceLoaderDynamicStyles"" content=""1""/> "
MetaTags = MetaTags & "<script type=""text/javascript""> "
MetaTags = MetaTags & "<meta name=""generator"" content=""Media""/> "
MetaTags = MetaTags & "<meta name=""referrer"" content=""origin""/> "
Dim objHtml As Object
Set objHtml = CreateObject("htmlfile")
With objHtml
.Open
.write MetaTags
.Close
End With
Dim objElements As Object, objElement As Object
Set objElements = objHtml.getElementsByTagName("meta")
For Each objElement In objElements
If objElement > 0 Then i = i + 1
Next objElement
For Each objElement In objElements
For j = 0 To i - 1
If objElement.Charset <> "" Then
Debug.Print j + 1 & "/" & i & " element ""charset"" = " & objElement.Charset
End If
Next j
Next objElement
End Sub
はあなたに多く、ティム・ウィリアムズをありがとうございました!いいえ、それは意図的なものではありませんが、可能であれば、間違いをスキップすることは素晴らしいことです。正しいインデックス番号を取得するには 'Debug.Print j + 1'の代わりに' Debug.Print j'が必要です。 –
6番目のメタタグとしてMetaTagsの ""を追加すると、 'Debug.Print objElement.outerHTML'が正しく機能しません。 –