
いつもお世話になっております。
この度Excelの置換作業の中でも、リストに入力されたデータと
一致している列データを一括置換(削除)したく質問させていただきました。
画像を例に説明させていただきます。
B2セルより下記には様々な情報のデータが入力されており、
D2セルより下記に置換(削除したい)データリストが入力されております。
マクロの記録操作で
Columns("B:B").Select
Selection.Replace What:="もも", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
とひとつのデータに対し削除を行っていくこちらに
D2セルより下記のリストに一致したデータのみ削除の置換のVBAを
組み込みたいのですが、どの様なプログラムの構成になるのでしょうか?
何卒よろしくお願いいたします。

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も見ています
-
別シートのリストから置換する方法
Excel(エクセル)
-
【Excel関数】特定の文字を別表のリストの文字に変換したい
Excel(エクセル)
-
エクセルで置換リストを別ブックにおいたマクロを作りたい
Excel(エクセル)
-
-
4
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
5
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
6
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
7
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
8
エクセルの関数SUBSTITUTEを、複数の条件を簡単に書く方法
Excel(エクセル)
-
9
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
10
【Excel VBA】 B列に特定の文字列があった場合にA列の値を変更する
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現で、特定の文字列を含...
-
VBA 置換文字がみつからない時
-
perlで置換をするプログラムを...
-
スペースで区切られた氏名から...
-
Excel VBA 教えてください。 VB...
-
VBAを使って条件により、文字列...
-
vbs 連続した8タブを空白に変換...
-
位置指定の文字マッチングと同...
-
○文字目に文字挿入
-
Eclipse 改行後のタブ
-
C言語でテキストファイルの内容...
-
Perlの正規表現
-
フォントの色を保持したままセ...
-
正規表現で一括置換
-
ダブルクォーテーション置換時...
-
Excel VBA リストに一致したデ...
-
複数行に渡る文字列の置換
-
Perl正規表現わかりますか?
-
閉じタグの置換方法
-
正規表現 特定の文字列を含む行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 置換文字がみつからない時
-
正規表現で、特定の文字列を含...
-
csvデータ ダブルクォーテ...
-
各項目がダブルクォーテーショ...
-
Excel VBA リストに一致したデ...
-
スペースで区切られた氏名から...
-
秀丸エディタで、「-」や「ー」...
-
EXCELマクロを用いてグラフの系...
-
csvデータのダブルクォーテーシ...
-
C#で空白行を削除する方法
-
EXCEL警告「置換対象のデータが...
-
xmlファイル内の文字列置換
-
正規表現 特定の文字列を含む行...
-
テキストボックスの文字列を置...
-
○文字目に文字挿入
-
C言語でテキストファイルの内容...
-
複数のパワーポイントファイル...
-
c# ビルド直前にコードを置換で...
-
Excel・ユーザーフォームの情報...
-
\\(円)記号を置換したい
おすすめ情報