
いつもお世話になっております。
この度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で質問しましょう!
この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
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
9
【VBA】条件に一致しない行を削除したい 複数条件
Visual Basic(VBA)
-
10
【ExcelVBA】全シートのセルの数式を値に変換する事は可能でしょうか?
Visual Basic(VBA)
-
11
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
12
VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL VBA でCTRL+Fのダイア...
-
procmailで本文の文字列置換
-
秀丸エディタで、「-」や「ー」...
-
スペースで区切られた氏名から...
-
正規表現 特定の文字列を含む行...
-
C言語でテキストファイルの内容...
-
HTMLタグ内の文字の置き換え
-
MATLAB 全て置換
-
VBA 置換文字がみつからない時
-
Excel VBA リストに一致したデ...
-
python 大文字小文字を区別しな...
-
c# ビルド直前にコードを置換で...
-
ハングルを日本語に置換
-
CSVファイルの中で、「 , 」カ...
-
住宅にカナを入力する際に丁目...
-
Excelについて質問です。 セル...
-
VBA 文字に半角が含まれて...
-
WORDで改ページすると時々グレ...
-
dat形式ををcsv形式に変更したい。
-
カンマ区切りの数字をCSVフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現で、特定の文字列を含...
-
VBA 置換文字がみつからない時
-
各項目がダブルクォーテーショ...
-
○文字目に文字挿入
-
csvデータ ダブルクォーテ...
-
C#で空白行を削除する方法
-
Excel・ユーザーフォームの情報...
-
csvデータのダブルクォーテーシ...
-
秀丸エディタで、「-」や「ー」...
-
フォントの色を保持したままセ...
-
Excel VBA 教えてください。 VB...
-
EXCEL警告「置換対象のデータが...
-
スペースで区切られた氏名から...
-
Eclipse 改行後のタブ
-
Excel VBA リストに一致したデ...
-
テキストボックスの文字列を置...
-
xmlファイル内の文字列置換
-
複数のパワーポイントファイル...
-
特定の列のみ置換を行いたい
-
ハングルを日本語に置換
おすすめ情報