VBAで画像ファイル部分を検索し取り出す
下のように<img src=タグを取出すプロシージャを作成しました。
・Instrで<img src=タグを検索します。
・見つかれば、その文字位置からタグの終わりの>を検索します。
・Mid関数でタグ全体を取り出します。
・以上をタグが見つからなくなるまでループで繰り返します。
Private Sub MyPicChange()
Dim n0 As Long
Dim n1 As Long
Dim n2 As Long
Dim s1 As String
n0 = 1
Do
n1 = InStr(n0, sUtfBuf, "<img src=", vbTextCompare)
If n1 > 0 Then
n2 = InStr(n1 + 5, sUtfBuf, ">", vbTextCompare)
s1 = Mid(sUtfBuf, n1, n2 - n1 + 1)
Debug.Print s1
n0 = n2
Else
Exit Sub
End If
Loop
End Sub
追加した結果です。
</head>の前にAMPの定型文とインラインのスタイルシートが追加されています。
VBAで画像ファイル名を検索し取り出す
<img src=タグからファイル名を取り出すプロシージャを作成しました。
MyPicChangeから呼び出します。
・先頭からInstrで”を検索します。
・見つかった位置から次の”を検索します。
・Mid関数でファイル名を取り出します。
Private Function MyPicChangeSub(sp As String) As String
Dim n1 As Long
Dim n2 As Long
Dim s1 As String
n1 = InStr(1, sp, """", vbTextCompare)
n2 = InStr(n1 + 1, sp, """", vbTextCompare)
s1 = Mid(sp, n1 + 1, n2 - n1 - 1)
Debug.Print s1
End Function
実行結果です。
1と3行目が<img src=タグで、2と4行目が取出したファイル名です。