- ベストアンサー
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
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。KenKen_SP です。 コード自体は問題ないと思いますので、コードの呼び出し方法かと 思います。 ユーザーフォームにご提示のコードを書いた場合は、例えば、ボタン を追加して、そのボタンをダブルクリックするとコードウインドウが 開きます。そこに以下のようなコードを追加します。 Private Sub CommandButton1_Click() Call 文字を置き換える End Sub のようにします。これは、CommandButton1 という名のボタンを押す とご提示のプログラム「文字を置き換える」を呼び出します(実行)。 CommandButton1 の数字 1 は配置したボタン名になりますので、この 例示のとおりとは限りません。
その他の回答 (2)
- banker_U
- ベストアンサー率21% (17/78)
こんにちは えーと、どうしてマクロでやりたいのかがよくわかりません。 都度検索文字列を置換文字列を入力するなら、手間数としては下記の方法でもあまり変わらないと思います。 その1:ctrl+H その2:ユーザ設定で、ツールバーに「置換」を追加
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 ユーザーフォームから行うのでしたら、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=""だけにしているのは、検索値はなくてはなりませんが、置換値はなくて、削除することもあるからです。
お礼
お礼が遅くなって申し訳ありません。おかげさまでうまく動作しました。ありがとうございました。
お礼
お礼が遅くなって申し訳ありません。おかげさまでうまく動作しました。ありがとうございました。