[VBA]functionの呼び出しの繰り返し(HTMLタグの除去)
お世話になってます。Excel VBA全くの初心者です。よろしくお願いいたします。
Excelで文中のHTMLタグの除去を行い別sheetに転記を行いたく、方法を調べました。
下記サイトを参考に「<」から「>」までを空白に置き換えるサンプルプログラムを発見し、他シートから1セルずつ指定して転記する動作確認は成功しました。
[URL]http://www.excel.studio-kazu.jp/kw/20100502205005.html
[サンプルプログラム1]
Function ReplaceHTMLTag(ByVal txt As String) As String With CreateObject("vbscript.regexp") .Pattern = "<[^>]*>" .Global = True ReplaceHTMLTag = .Replace(txt, "") End With End Function
これを別Sheetの特定の列に値が入っている限り繰り返し行いたいと考え、さらに以下のサンプルプログラムを見つけました。
[URL]http://excelution.net/loop-processing-template-of-excel-vba/
[サンプルプログラム2]
Sub Do_While_Loop_Sample() Dim i As Long i = 1 Do While Cells(i, 1) <> "" Cells(i, 1) = Cells(i, 1) + 1 i = i + 1 Loop End Sub
しかし、これまで全くVBAを扱ったことがないため、VBAの構成等基礎的なことを含め調べながら上記のプログラムを組み合わせようとしましたが、うまくいきません。
戻り値ありのため、Callではなく下記のDimを用いる必要があると考えているのですが、いろいろなサイトを見ているとメッセージボックスの例ばかりで、Sheet上に値を入れるようなものを見つけられませんでした。
[サンプルプログラム3]
Sub macro1() Dim str As String str = func1() MsgBox str, vbInformation End Sub Function func1() As String func1 = "Hello VBA!" End Function
サンプルプログラム2の「Cells(i, 1) = Cells(i, 1) + 1 」の部分でHTMLタグの除去を行うFunctionを呼びだすのではと考えていますが、違うのでしょうか。
本来自分で調べて学んでいくものだとは思いますが、急きょ必要となったためこちらを利用します。
情報不足や認識違い等多々あるかと思いますが、ご指摘いただけると幸いです。
以上、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/05 12:06 編集
2018/05/05 13:41