タグにはさまれた文字列から必要な文字列を抜き出すコードを作成しました。
[InnerHTML]を使わずに、力技で文字列操作をしています。
Function NUKIDASItest は、任意の文字列にはさまれた特定の文字を抜き出します。
Sub 抜き出し() Dim txt As String '<td class="td-blog-author">はてなID</td> txt = "<td class=""td-blog-author"">はてなID</td>" Debug.Print txt MsgBox NUKIDASItest(txt, "-author"">", "</td>") End Sub
'-------------------------------------------------- Function NUKIDASItest(allText As String, mark1 As String, mark2 As String) As String 'タグから文字を抜き出す '対象型 '***[目印(mark1)][抜き出し文字][目印(mark2)]*** '***:任意の文字列。無しでも可。 'allText: 文字列全体 'mark1: 抜き出し文字列直前の目印文字列(直後には抜き出し文字列が続いていること) 'mark2: 抜き出し文字列直後の目印文字列 Dim allLen As Integer Dim mark1Len As Integer Dim mark2Len As Integer Dim mark1Instr As Integer Dim mark2Instr As Integer Dim mark1All As String 'mark1を含む不用文字全部 Dim mark2All As String 'mark2を含む不用文字全部 Dim tmpText As String allLen = Len(allText) '全文字列の文字数 mark1Len = Len(mark1) '前方目印の文字数 mark2Len = Len(mark2) '後方目印の文字数 mark1Instr = InStr(allText, mark1) '前方目印位置 mark2Instr = InStrRev(allText, mark2) '後方目印の位置 If mark1Len <> 0 Then mark1All = Left(allText, mark1Instr + mark1Len - 1) Else mark1All = "" End If 'Debug.Print mark1All If mark2Len <> 0 Then mark2All = Right(allText, allLen - mark2Instr + 1) Else mark2All = "" End If 'Debug.Print mark2All tmpText = Replace(allText, mark1All, "") NUKIDASItest = Replace(tmpText, mark2All, "") End Function
作成してから気づいたのですが、Mid関数を使った方がスマートにできますね。
明日はそれでやってみます。