質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

2922閲覧

VBAでHTMLのタグを消したい

na58chan

総合スコア13

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/03/08 13:27

編集2020/03/08 15:04

文字が<>で囲まれている部分を消すには、どうすればよろしいですか?
元の文字列が<div></div>ああああああああ< /br></script>のような場合にHTMLタグだけ消したいのです。

私がしようとしていることは以下のような感じです。これは、構文エラーになりますが。
出来れば、< /br>タグだけは残したいです。
Replace(文字列, "<" & * & ">", "")

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/03/08 14:51

本来の目的や背景、要件が不明瞭すぎます。 赤の他人が初めて見てもなんのことか分かるように具体的に記載してください。
m.ts10806

2020/03/08 21:34

そもそものそのHTMLとなるものはどこから取得されるものなのでしょうか。 あとできれば質問は質問テンプレートにそってお書きください。 >< /br>タグだけは残したいです。 動作確認したわけじゃないですが、<br />はありますが、</br>というタグはないはずですけど。
Y.H.

2020/03/10 02:46

確認です。 タグにある通り「VBA」ですよね?「VBScript」じゃないですよね? もし「VBScript」ならタグを修正お願いします。
guest

回答1

0

ベストアンサー

こんにちは。
BRタグを<br />とした前提で、正規表現を使えばこんな感じです。

VBA

1Public Function deleteHTML(htmlText As String) As String 2 Dim regObj As New VBScript_RegExp_10.RegExp 3 4 '正規表現オブジェクトの設定 5 With regObj 6 'BRタグを否定的先読みし、残りのHTMLタグにパターンマッチさせる正規表現 7 .Pattern = "(?!\<\s*br\s+/?\s*\>)(\<(""[^""]*""|'[^']*'|[^'""\>])*\>)" 8 '英大文字小文字を区別しない 9 .IgnoreCase = True 10 '文字列全体に対してパターンマッチさせる 11 .Global = True 12 End With 13 14 '正規表現による置換 15 deleteHTML = regObj.Replace(htmlText, "") 16 17 Set regObj = Nothing 18End Function 19 20Sub sampleTest() 21 Dim html As String 22 23 html = "<div></div>ああああああああ<br /></script>" 24 Debug.Print html 25 Debug.Print deleteHTML(html) 26End Sub

実行結果

<div></div>ああああああああ<br /></script> ああああああああ<br />

投稿2020/03/09 00:52

DreamTheater

総合スコア1095

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

na58chan

2020/03/09 12:03

ありがとうございます。しかし、Dim regObj As New VBScript_RegExp_10.RegExpここでエラーが出てきます。ユーザー定義型は定義されていません。との表示がでてきます。
DreamTheater

2020/03/09 22:35

すみません、遅くなりました。 ツール⇒参照設定から「Microsoft VBScript Regular Expressions 1.0」を追加してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問