• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA フォーム上のテキストボックス文章 置換)

VBAフォーム上のテキストボックス文章置換

このQ&Aのポイント
  • VBAを使用して、フォーム上のテキストボックスの文章を置換する方法について教えてください。
  • Wordで行っていた文章の置換をExcelで行いたいです。特にワイルドカードの使い方が分からないので、その方法も教えてほしいです。
  • テキストボックスの文章を置換するために、VBAでワイルドカードを使用する方法やセル参照を使った方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.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

satoron666
質問者

お礼

mt2008様、回答ありがとうございます! +?で、要らない部分も置換しているのでしょうか? プログラム、そして、 参考画像までありがとうございます!! 大変助かります。 プログラムの意味や、流れを確認したうえで 使用していきたいと思います! ありがとうございました!

関連するQ&A