
いつもお世話になっています。
エクセルの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
No.1ベストアンサー
- 回答日時:
こんにちは。
KenKen_SP です。コード自体は問題ないと思いますので、コードの呼び出し方法かと
思います。
ユーザーフォームにご提示のコードを書いた場合は、例えば、ボタン
を追加して、そのボタンをダブルクリックするとコードウインドウが
開きます。そこに以下のようなコードを追加します。
Private Sub CommandButton1_Click()
Call 文字を置き換える
End Sub
のようにします。これは、CommandButton1 という名のボタンを押す
とご提示のプログラム「文字を置き換える」を呼び出します(実行)。
CommandButton1 の数字 1 は配置したボタン名になりますので、この
例示のとおりとは限りません。
No.3
- 回答日時:
こんにちは
えーと、どうしてマクロでやりたいのかがよくわかりません。
都度検索文字列を置換文字列を入力するなら、手間数としては下記の方法でもあまり変わらないと思います。
その1:ctrl+H
その2:ユーザ設定で、ツールバーに「置換」を追加
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=""だけにしているのは、検索値はなくてはなりませんが、置換値はなくて、削除することもあるからです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルマクロで教えてください 2 2022/05/04 09:07
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) countifsについての質問 3 2023/03/08 13:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 指定文字を太字にするVBAを別シートのセルを指定する構文(改良について) 6 2022/08/27 22:11
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAで、実行時にsheet上...
-
エクセルVBAでmeに相当するもの...
-
キーボードでコマンドボタンを...
-
エラー内容が分かりません
-
エクセルで印刷する方法 エクセ...
-
複数のデータ系列の線の太さを...
-
【マクロ】宣言は、何のために...
-
エクセルでツールバーに「縮小...
-
別のパソコンでエクセルのマク...
-
昨日まで動いていたエクセルの...
-
excelのマクロ実行でブロックさ...
-
VBAを一度起動するとずっと出て...
-
「ほかのアプリケーションを無...
-
Excelが勝手にシート移動してし...
-
コピーしたファイルのマクロを...
-
ExcelVBAで今開いているユーザ...
-
エクセルVBAを使ってサーバ...
-
VBA セル入力された日付データ...
-
excelインポート時の「実行時エ...
-
cellsで特定の離れた範囲を選択...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAで、実行時にsheet上...
-
エラー内容が分かりません
-
エクセルVBAでmeに相当するもの...
-
オプションボタン
-
コモンダイアログエラー
-
BackColor でてこなかった
-
キーボードでコマンドボタンを...
-
VBAのコントロールなんかをコレ...
-
EXCEL VBA テキストボックスの...
-
エクセル2010のvbaとコマンドボ...
-
アクセス カンレンダーコント...
-
EXCEL VBA カレンダーコントロ...
-
ワードVBAで画像を挿入
-
【マクロ】宣言は、何のために...
-
複数のデータ系列の線の太さを...
-
VBAを一度起動するとずっと出て...
-
ExcelVBAで今開いているユーザ...
-
エクセルでツールバーに「縮小...
-
エクセル終了時の保存確認メッ...
-
コピーしたファイルのマクロを...
おすすめ情報