• ベストアンサー

EXCEL VBA テキストボックスの文字で置換したい

いつもお世話になっています。 エクセルのVBAでフォームをつくり、フォーム上のテキストボックスに入力した文字でデータ変換をしようと考えています。たとえば「東京」を「東京都」という具合です。 メニューから実行すれば良いだけの話なのですが 業務上、より作業を簡素化したいためです。 下記のようにマクロを記述しましたが、うまく動作しないのでどうしてでしょうか?よろしくお願いします。 Sub 文字を置き換える() Dim mae As String Dim ato As String Columns("H:H").Select mae = UserForm1.TextBox2.Value ato = UserForm1.TextBox3.Value Selection.Replace What:=mae, Replacement:=ato, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。KenKen_SP です。 コード自体は問題ないと思いますので、コードの呼び出し方法かと 思います。 ユーザーフォームにご提示のコードを書いた場合は、例えば、ボタン を追加して、そのボタンをダブルクリックするとコードウインドウが 開きます。そこに以下のようなコードを追加します。 Private Sub CommandButton1_Click()   Call 文字を置き換える End Sub のようにします。これは、CommandButton1 という名のボタンを押す とご提示のプログラム「文字を置き換える」を呼び出します(実行)。 CommandButton1 の数字 1 は配置したボタン名になりますので、この 例示のとおりとは限りません。

mskhas
質問者

お礼

お礼が遅くなって申し訳ありません。おかげさまでうまく動作しました。ありがとうございました。

その他の回答 (2)

  • banker_U
  • ベストアンサー率21% (17/78)
回答No.3

こんにちは えーと、どうしてマクロでやりたいのかがよくわかりません。 都度検索文字列を置換文字列を入力するなら、手間数としては下記の方法でもあまり変わらないと思います。 その1:ctrl+H その2:ユーザ設定で、ツールバーに「置換」を追加

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 ユーザーフォームから行うのでしたら、CommmandButton のクリックイベントに、以下のようにコード自体を入れてしまってもよいでしょうね。それから、できれば、シート名を入れたほうがよいですね。 Private Sub CommandButton1_Click() Dim mae As String Dim ato As String mae = UserForm1.TextBox2.Value ato = UserForm1.TextBox3.Value If mae = "" Then Exit Sub Worksheets("Sheet1").Columns("H:H").Replace _       What:=mae, _       Replacement:=ato, _       LookAt:=xlPart, _       SearchOrder:=xlByColumns        End Sub mae=""だけにしているのは、検索値はなくてはなりませんが、置換値はなくて、削除することもあるからです。

mskhas
質問者

お礼

お礼が遅くなって申し訳ありません。おかげさまでうまく動作しました。ありがとうございました。

関連するQ&A