• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル 同じ内容行削除マクロ)

シート1とシート2のB列を比較して同じ内容の行を削除するエクセルマクロの作成方法

pkh4989の回答

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.1

以下の例を参考にしてください。 Sub 削除()   Dim wh1     As Worksheet   Dim wh2     As Worksheet   Dim f      As Range   Dim wR     As Integer   Dim mR     As Long   Dim wStr    As String   '   Set wh1 = Worksheets("Sheet1")   Set wh2 = Worksheets("Sheet2")   wR = 0   With wh1     mR = .Cells(Rows.Count, "A").End(xlUp).Row     For wR = mR To 1 Step -1       wStr = .Cells(wR, "B")       Set f = wh2.Range("B1:B" & wh2.Cells(Rows.Count, "B").End(xlUp).Row).Find(wStr)       If Not f Is Nothing Then         .Rows(wR).Delete       End If     Next   End With End Sub

samsonkun
質問者

お礼

お返事遅くなり申し訳御座いません。pkh4989様の回答を参考にさせて頂きました。有難う御座います。

関連するQ&A

  • エクセル マクロ 対象列をコピーする

    エクセル マクロについて質問です。 下記のようなデータがありますが、【商品名】ごとにまとめたものを 別のシートへ行ごとコピーをして、商品名毎にまとめたいと思っています。 マクロの構文が思いつかず、よい方法はないでしょうか。 初歩的な質問かも知れませんがおしえてください。 マクロ実施前 【県名】  【商品名】 【売り上げ日】 【その1】 【その2】 埼玉県   A 東京都   B 神奈川県  B 千葉県 A 栃木県   C 群馬県   D マクロ実施後↓↓ Aシート 【県名】  【商品名】 埼玉県   A 千葉県 A Bシート 【県名】  【商品名】 東京都   B 神奈川県  B Cシート 【県名】  【商品名】 栃木県   C 群馬県   D Dシート 【県名】  【商品名】 群馬県   D

  • エクセルでの列の文字列の一括置換え

    ご質問失礼いたします。 エクセルので以下のようなことを 行いたくご相談させて頂きます。 以下のようなExcel A | B   01 | 北海道 02 | 青森県 03 | 岩手県 04 | 宮城県 05 | 秋田県 06 | 山形県 07 | 福島県 08 | 茨城県 09 | 栃木県 10 | 群馬県 (47都道府県分あり) ~~~~~~ 別ワークシートに A      | B    | C    | D 山田太郎   群馬県  ○○市   ○○3丁目10-1 鈴木花子   秋田県  ○○市   ○○5丁目10-1 ~~~~~~ とあってB列の都道府県を前者のB列>A列の数字に変換し A      | B    | C    | D 山田太郎   10     ○○市   ○○3丁目10-1 鈴木花子   05     ○○市   ○○5丁目10-1 ~~~~~~ このようにしたいです。 後者の行が数千あるのと都道府県が多いので通常のExcelの一括置換えなどではなく、 効率の良い方法や関数などございましたら、是非ご教授いただければ幸いです。

  • マクロによる条件での行の入力と削除

     初めまして、よろしくお願いします。  次のような二枚のシートがあります  シート1      A  B  C   1     2       ・      99      100 23    101 25   102 31   103 34  104 43  105 44  106 49  107 50  108 55  109 60  110  111  ・  ・  シート2      A  B  C   1     2       ・      99      100 23  1 2 3   101 25  4 5 6 102 31  7 8 9     103 34  0 1 2  104 43  3 4 5     105 44  6 7 8 106 49  9 0 1 107 50  2 3 4 108 55  5 6 7 109 60  8 9 0 110  111  ・  ・ シート1とシート2のA列に入っている数字が通し番号です。シート2では加えてその通し番号のデーター数字がB列、C列、D列に入っています。 のこシート1の通し番号31が削除、代わりに通し番5番と51番を追加し、  シート1      A  B  C   1     2       ・      99      100  5 101 23    102 25     103 34  104 43  105 44  106 49  107 50  108 51 109 55  110 60  111  112  ・  ・ マクロを実行すると  シート2      A  B  C   1     2       ・      99      100  5 101 23  1 2 3   102 25  4 5 6    103 34  0 1 2  104 43  3 4 5     105 44  6 7 8 106 49  9 0 1 107 50  2 3 4 108 51 109 55  5 6 7 110 60  8 9 0 111  112  ・  ・ シート2がこように通し番号31が入っていた行番102行が削除され、新たに通し番5番が行番100に、51番が行番108に挿入追加されるマクロを教えていただきたく、よろしくお願いします。

  • エクセル 同じ内容行削除マクロ 2

    シート1、シート2(基準)のB列を比較して同じ内容行を削除したいのですが、「栃木県3」と「#栃木県3」を同じのもと考えて削除されてしまいます。 Sub 削除()   Dim wh1     As Worksheet   Dim wh2     As Worksheet   Dim f      As Range   Dim wR     As Integer   Dim mR     As Long   Dim wStr    As String   '   Set wh1 = Worksheets("Sheet1")   Set wh2 = Worksheets("Sheet2")   wR = 0   With wh1     mR = .Cells(Rows.Count, "A").End(xlUp).Row     For wR = mR To 1 Step -1       wStr = .Cells(wR, "B")       Set f = wh2.Range("B1:B" & wh2.Cells(Rows.Count, "B").End(xlUp).Row).Find(wStr)       If Not f Is Nothing Then         .Rows(wR).Delete       End If     Next   End With End Sub 解決策教えて下さい。

  • 行抽出マクロについて教えてください。

    エクセルで sheet1このように入力されております。 A列には製造番号 B列には日付 C列単価 D列記号がすでに入力済みです。 _____________________________________ 行/列  A    B    C    D 1   123456   4/5 1020 K 2  789456  5/2 500 D 3  789789   6/2 9000 F 4  456789   6/2 5000 S ------------------------------------- sheet2には製造番号が500行ランダムに入力済みです。 _____________________________________ 行/列  A    B    C    D 1 456789 2  789456  3  789789 4  456789 5 : 6   : ------------------------------------- ボタンをおしたら一致した製造番号のBCD列にsheet1の日付・単価・記号を自動的に入力したい。どなたかご教授お願いいたします。

  • 行抽出マクロについて教えてください。

    エクセルで sheet1このように入力されております。 A列には製造番号 B列には日付 C列単価 D列記号がすでに入力済みです。 _____________________________________ 行/列  A    B    C    D 1   123456   4/5   1020   K 2  789456  5/2   500   D 3  789789   6/2   9000   F 4  456789   6/2   5000   S ------------------------------------- sheet2には製造番号が500行ランダムに入力済みです。 _____________________________________ 行/列  A    B    C    D 1   456789 2  789456  3  789789 4  456789 5    : 6   : ------------------------------------- ボタンをおしたら一致した製造番号のBCD列にsheet1の日付・単価・記号を自動的に入力したい。どなたかご教授お願いいたします。

  • 【Excel】 印をした行の内容を別のシートに表示します。

    こんにちは ─────────────────── sheet1  A  B       C     D 1   あいうえお  東京都  1000 2   かきくけこ  大阪府  2000 3 ●  さしすせそ  愛知県  2500 4   たちつてと  福岡県  1800 5   ・      ・    ・  6   ・      ・    ・  7   ・      ・    ・  8   ・      ・    ・  ─────────────────── sheet2  A      B     C 1 さしすせそ  愛知県  2500 ─────────────────── 上記のようにsheet1にリストがあり、そのA列の中に●で印をすると sheet2にその●をした行の内容が表示されるようにしたいのですが、 sheet2 A1 B1 C1 の式を教えてください。 A列の●は一箇所です。

  • Excelで1行の内容を、隣のシートで2行にしたい

    Excelで表に書かれている内容(1行でA,B,C,D)を、隣のシート(2行で上の行にA,B、下の行にC,D)に飛ばす方法を教えてください。

  • Excelで

    Excel2000を使用しています。 関数だけで出来るのかも分かりませんが、 以下のようにD列に表示させる方法を教えてください。 CONCATENATEと何か別の関数を組み合わせれば出来るものでしょうか?   A      B     C     D 1きゅうり    静岡    100     静岡 2         愛媛      5        3トマト     栃木      20     栃木 4みかん    神奈川   80     埼玉/神奈川/岩手 5         埼玉    150        6        岩手     30        7もも      長野     50     長野 8レタス     群馬     3     群馬 1.A列は、あいうえお順でソートされています。 2.A2は空白ですが「みかん」のデータです。 3.A5とA6は空白で「トマト」のデータです。 4.A列で同一データのB列データをD列に「/」で区切り1つにする:例 D4 5.A列で同一データのB列データでもC列の値が10以下は含めない:例 D1 6.C列の値が10以下でもA列データが1つのものはD列に表示:例 D8 よろしくお願いします。

  • 行抽出マクロについて教えてください。

    エクセルで sheet1このように入力されております。 A列には製造番号 B列には日付 C列単価 D列記号がすでに入力済みです。 _____________________________________ 行/列  A    B    C    D 1   123456   4/5   1020   K 2  789456  5/2   500   D 3  789789   6/2   9000   F 4  456789   6/2   5000   S ------------------------------------- sheet2には製造番号が500行ランダムに入力済みです。 _____________________________________ 行/列  d    E    F    G 1   456789 2  789456  3  789789 4  456789 5    : 6   : ------------------------------------- ボタンをおしたら一致した製造番号のEFG列にsheet1の日付・単価・記号を自動的に入力したい。どなたかご教授お願いいたします。