VBAでフレーム内値を取得するためのサブルーチン「frameTagValue」

VBAのIE(InternetExplorer)制御に便利なサブルーチンを紹介しています。

「frameTagValueサブルーチン」の詳しい説明は以下よりご確認ください。
フレーム内値取得
Function frameTagValue(objIE As InternetExplorer, _
                       tagName As String, _
                       tagStr As String, _
                       valueType As String) As String

 'フレームのオブジェクトを取得する
 Set objFrame = objIE.document.frames

 'フレームドキュメントのオブジェクトを取得する
 For i = 0 To objFrame.Length - 1

  Set objFrameDoc = objFrame(i).document

  For Each objTag In objFrameDoc.getElementsByTagName(tagName)

   With objTag

   If InStr(.outerHTML, tagStr) > 0 Then

    Select Case valueType

     Case "innerHTML"

      FrameTagValue = .innerHTML

     Case "innerText"

      FrameTagValue = .innerText

     Case "outerHTML"

      FrameTagValue = .outerHTML

     Case "outerText"

      FrameTagValue = .outerText

    End Select

    GoTo label01

   End If

  End With

 Next

Next i

label01:

End Function
引数名データ型内容値の事例初期値省略
objIEInternetExplorerIEオブジェクトobjIE,objIE2×
tagNameString目的タグの文字列"p","h1","tr","li"×
tagStrString目的エレメント内の一意のキーワード文字列"p-value"×
valueTypeString要素テキスト取得のプロパティ文字列"innerHTML",
"innerText",
"outerHTML",
"outerText"
×
frameTagValue("IEオブジェクト","目的タグの文字列","目的エレメント内の一意のキーワード文字列","テキスト取得のプロパティ文字列")

こちらは、全て必須項目となります。
「objIE」はオブジェクトを入力します。
「tagName」はタグ要素(a,p,inputなど)の文字列を入力します。
「tagStr」には、エレメントに含まれる一意のキーワード文字列を入力します。「一意のキーワード」とはそこでしか使われていない文字列のことです。
探すポイントとしては、まずid属性が設定されているか確認してください。id属性は一意の属性ですので、こちらが設定されていれば簡単に取得できます。今回のpタグもid="p-value"があるエレメントを取得するという設定になっています。
id属性がない場合は、name属性・class属性で一意のキーワードがないか確認していきます。また、リンクのテキストを取得する場合は、URLの法則を見つけ、一意のキーワードを探していきます。
「valueType」には、要素テキスト取得のプロパティ(innerHTML,innerText,outerHTML,outerText)の文字列を入力します。