- ベストアンサー
VBAフォーム上のテキストボックス文章置換
- VBAを使用して、フォーム上のテキストボックスの文章を置換する方法について教えてください。
- Wordで行っていた文章の置換をExcelで行いたいです。特にワイルドカードの使い方が分からないので、その方法も教えてほしいです。
- テキストボックスの文章を置換するために、VBAでワイルドカードを使用する方法やセル参照を使った方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
VBAの置換(Replace)ではワイルドカードは使えません。 代わりに正規表現を使ってざっくりした(と、言うよりは「手抜き」な)サンプルを作ってみました。 Private Sub CommandButton1_Click() '改行コードを「@」に置換(@を文章で使っている場合は、絶対使わない文字に代えて下さい) TextBox1.Text = Replace(TextBox1.Text, vbCrLf, "@") Call fReplace("転送者.+?件名", "@@<件名>@") Call fReplace("^@@", "") '先頭の@@のみ削除 Call fReplace("本文 ", "<本文>@") Call fReplace("本文おわり.+?内容", "<内容>") Call fReplace("対策", "@<対策>@") Call fReplace("添付", "@<添付>@") TextBox1.Text = Replace(TextBox1.Text, "@", vbCrLf) '「@」を改行コードに戻す TextBox1.Text = Replace(TextBox1.Text, " ", "") '全角スペースを削除 End Sub Function fReplace(sPat As String, sString As String) As String Dim RE Set RE = CreateObject("VBScript.RegExp") With RE .Pattern = sPat .IgnoreCase = True .Global = True End With TextBox1.Text = RE.Replace(TextBox1.Text, sString) End Function
お礼
mt2008様、回答ありがとうございます! +?で、要らない部分も置換しているのでしょうか? プログラム、そして、 参考画像までありがとうございます!! 大変助かります。 プログラムの意味や、流れを確認したうえで 使用していきたいと思います! ありがとうございました!