こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

投稿日時 - 2005-10-30 17:54:53

QNo.1745913

困ってます

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

こんにちは。KenKen_SP です。

コード自体は問題ないと思いますので、コードの呼び出し方法かと
思います。

ユーザーフォームにご提示のコードを書いた場合は、例えば、ボタン
を追加して、そのボタンをダブルクリックするとコードウインドウが
開きます。そこに以下のようなコードを追加します。

Private Sub CommandButton1_Click()
  Call 文字を置き換える
End Sub

のようにします。これは、CommandButton1 という名のボタンを押す
とご提示のプログラム「文字を置き換える」を呼び出します(実行)。

CommandButton1 の数字 1 は配置したボタン名になりますので、この
例示のとおりとは限りません。

投稿日時 - 2005-10-30 19:24:47

お礼

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

投稿日時 - 2005-11-02 10:38:57

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

こんにちは

えーと、どうしてマクロでやりたいのかがよくわかりません。
都度検索文字列を置換文字列を入力するなら、手間数としては下記の方法でもあまり変わらないと思います。

その1:ctrl+H
その2:ユーザ設定で、ツールバーに「置換」を追加

投稿日時 - 2005-10-31 14:42:40

ANo.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=""だけにしているのは、検索値はなくてはなりませんが、置換値はなくて、削除することもあるからです。

投稿日時 - 2005-10-30 20:07:35

お礼

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

投稿日時 - 2005-11-02 10:39:22

あなたにオススメの質問