![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
いつもお世話になっております。
この度Excelの置換作業の中でも、リストに入力されたデータと
一致している列データを一括置換(削除)したく質問させていただきました。
画像を例に説明させていただきます。
B2セルより下記には様々な情報のデータが入力されており、
D2セルより下記に置換(削除したい)データリストが入力されております。
マクロの記録操作で
Columns("B:B").Select
Selection.Replace What:="もも", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
とひとつのデータに対し削除を行っていくこちらに
D2セルより下記のリストに一致したデータのみ削除の置換のVBAを
組み込みたいのですが、どの様なプログラムの構成になるのでしょうか?
何卒よろしくお願いいたします。
![「Excel VBA リストに一致したデー」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/d/943663_6092db22bc647/M.png)
No.1ベストアンサー
- 回答日時:
置換したいキーワードの部分を、順番に入れ替えて実行します。
D2セルから始まって最終行まで。
この時に増えていく"行"の部分をFor~Next でループさせて増やしていきます。
(For~Next 以外にも方法はあります)
で、マクロ記録にあった "もも" の部分をセルアドレスに置き換えます。
Selection.Replace What:="もも"
これは
Selection.Replace What:=Range("D2")
と同じ。
ここが
Selection.Replace What:=Range("D2")
Selection.Replace What:=Range("D3")
Selection.Replace What:=Range("D4")
と数字が増えていくようにする、と考えると、下記のようになります。
Sub Macro()
Dim i As Integer
For i = 2 To Cells(Rows.Count, 4).End(xlUp)
Columns("B:B").Select
Selection.Replace What:=Range("D" & i), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next
'おまけ処理
Selection.Replace What:=" ", Replacement:=" "
Selection.Replace What:=" ", Replacement:=" "
End Sub
For~Next で i の値が増えていきます。
Cells(Rows.Count, 4).End(xlUp)
は、4列目の最終行を取得するためのものです。
おまけ処理は、キーワードが削除された後、
前後の区切り空白が繋がって2個になったものを1個に置換するものです。
不要であれば削除してください。
zongaiさん、回答ありがとうございます。
何時間もかかっていた作業が一瞬で終わり感激しております。
この様な記述になるのですね。
おまけ処理の記述もありがとうございます。
早速色々と弄り活用させていただいております。
この度はありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルマクロで教えてください 2 2022/05/04 09:07
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Visual Basic(VBA) VBA ドロップダウンリストを残して値のみクリア 2 2022/10/27 05:42
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Excel(エクセル) 【Excel】指定した文字列に該当する行を重複しないようにリスト 3 2022/03/30 12:27
- Visual Basic(VBA) 特定の文字を条件に指定範囲のデータを貼り付けるVBA 3 2023/01/15 06:14
- Visual Basic(VBA) エクセル VBA 条件付き書式 簡略化したい 2 2022/06/02 17:46
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python 大文字小文字を区別しな...
-
スペースで区切られた氏名から...
-
正規表現で、特定の文字列を含...
-
\\(円)記号を置換したい
-
正規表現で置換
-
PowerShellでテキストの空白行...
-
対称群はなぜそう呼ばれるので...
-
ハイフンの削除
-
Dream Weaver で
-
正規表現 特定の文字列を含む行...
-
EXCELマクロを用いてグラフの系...
-
○文字目に文字挿入
-
各項目がダブルクォーテーショ...
-
xmlファイル内の文字列置換
-
vbsで図形内テキストの置換方法
-
JSP内の正規表現で、行先頭の/...
-
秀丸で、正規表現キャプチャを...
-
TeraPadエディターの操作方法に...
-
秀丸の正規表現について
-
Perlでの文字列置換に関して
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GoogleAppsScript文字列置換の...
-
VBA 置換文字がみつからない時
-
各項目がダブルクォーテーショ...
-
正規表現で、特定の文字列を含...
-
csvデータ ダブルクォーテ...
-
EXCEL警告「置換対象のデータが...
-
EXCEL VBA でCTRL+Fのダイア...
-
C言語でテキストファイルの内容...
-
スペースで区切られた氏名から...
-
csvデータのダブルクォーテーシ...
-
PowerShellでテキストの空白行...
-
\\(円)記号を置換したい
-
C#で空白行を削除する方法
-
【Excel VBA】文字列の置換作業...
-
python 大文字小文字を区別しな...
-
テキストファイル中の文字列の置換
-
Excel VBA 教えてください。 VB...
-
ハングルを日本語に置換
-
ダブルコーテーション 、"を二...
-
○文字目に文字挿入
おすすめ情報