• ベストアンサー

株銘柄コード 重複行を削除するマクロを教えてください

1.環境 winxp pro sp2, office2003, 2.やりたい事 株 銘柄コードと銘柄名称 list があります。 銘柄コード:上位4桁固定 銘柄コードをチェックして、重複行を削除するマクロを教えてください。最初に出てきた行を残し、後から出てきた行を削除します。   A列 B列 1 6502 東芝 2 6502 (株)東芝 ----------削除 3 6784 プラネックス 4 3778 さくらインターネット 5 3778 さくらインターネット株式会社-----削除 6 8991 ライフステージ ...........  よろしくお願いします。

  • esd827
  • お礼率48% (219/455)

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#01です。マクロの最後から二行目は以下に修正して下さい Application.ScreenUpdating = True

esd827
質問者

お礼

ご指摘の方法、両方やってみました。これで十分です。 ありがとう御座いました。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

マクロを利用するまでもなくC1に =COUNTIF(A$1:A1,A1) と入力して、下にコピーすると各銘柄コードの出現回数(何番目)が計算されますからオートフィルタで2以上の行を絞り込んで行削除するのが簡単に思います マクロが良いならこんな感じでしょうか。マクロは標準モジュールシートに貼り付けて下さい。 Sub Macro() Dim idxR As Long  Application.ScreenUpdating = False  idxR = Range("A65536").End(xlUp).Row  Do While idxR > 1   If Application.CountIf(Range("A:A"), Cells(idxR, 1)) > 1 Then    ActiveSheet.Cells(idxR, 1).EntireRow.Delete   End If   idxR = idxR - 1  Loop  Application.ScreenUpdating = False End Sub

関連するQ&A

  • 重複行削除のマクロ

    重複行を削除するマクロを作っていますが、うまくいきません。 2行目にタイトルが入っていて、3行目以降が必要なデータになります。 この中でA列が一致しているデータ行を削除したいと考えており、 重複データが削除された後、タイトル行がなぜか一番下の行にはりついてしまいます。 どなたか詳しい方助けてください!!!よろしくお願いします。 ちなみに以下が現在使用しているVBAコードです。 =============================================================== Sub GoodRemoveDuplicates() 'A列にデータが入力されており、そのデータを並べ替えた後、 '重複するデータが含まれている行を削除するマクロ Worksheets("貼り付け用用マクロ").Range("A1").Sort _ key1:=Worksheets("貼り付け用用マクロ").Range("A1") Set currentCell = Worksheets("貼り付け用用マクロ").Range("A1") Do While Not IsEmpty(currentCell) Set nextCell = currentCell.Offset(1, 0) If nextCell.Value = currentCell.Value Then currentCell.EntireRow.Delete End If Set currentCell = nextCell Loop End Sub ===============================================================

  • 重複行を削除

    重複する行をVBAコードで削除したいのですが A列 B列 C列 あ  1  a あ  1  a あ  2  a い  1  a い  2  c い  2  c A列 B列 C列 あ  1  a あ  2  a い  1  a い  2  c のようにABC列同一文字は1行にしたいのですがVBAコード、関数の解る方ご教授願います。

  • Excel2010で行ごとの重複削除

    Excel2010です。 A行目 1 3 5 5 2 2 3 B行目 2 3 5 5 4 4 C行目 1 9 7 9 9 ↓ A行目 1 3 5 2 B行目 2 3 4 5 C行目 1 7 9 というように、行ごとに重複の削除をしたいと思っています。 データタブに重複の削除があるのですが、列ごとにやるようなので、一度シート全体を 行と列を入れ替えて別シートにコピーして、 1列目全体を選択して、1列目で重複の削除を実行 2列目全体を選択して、2列目で重複の削除を実行 ・・・ というやり方もあるのですが、今扱っているエクセルは197行197列あります。 列選択、重複の削除アイコンをクリックするのを197回繰り返すのは大変です。 自動化する方法はないものでしょうか?

  • セルの値が同じ行を条件に従って行削除するマクロ

    A~E列までデータがあり 行数は約30,000行あります。 A列は半角英数字と-で桁数は11桁又は14桁です。 数字のみもあれば数字と英字の組み合わせもあります。 (英字はどこの桁にあるか何個あるかは不規則です) 例 ABCD123456789X 124345678901234 55555-55555 ABC12345DEF678 E列には半角の 1 か 2 しかありません。 A列が同じ値の行を検出して重複している行は1行だけ残して 後は行削除をしたいです。 行削除はE列の値によって判定したいです。 重複行は1つの値に対して何行あるか不明です。 30,000行のうち、重複行を削除すると10,000行くらいになる予定です。 (1)重複行にてE列の値が1だけの場合    どれでもいいので1行残して残りは行削除 (2)重複行にてE列の値が2だけの場合   どれでもいいので1行残して残りは行削除 (3)重複行にてE列の値が1も2もある場合   E列の値が2の行をどれでもいいので1行残して残りは削除 例 (1) 1234567890XXXX-1 1234567890XXXX-1 1234567890XXXX-1 ↓ 1234567890XXXX-1 (2) 123ABCDE901234-2 123ABCDE901234-2 ↓ 123ABCDE901234-2 (3) 12345678901234-1 12345678901234-2 ↓ 12345678901234-2 ABC45678901234-1 ABC45678901234-2 ABC45678901234-1 ABC45678901234-2 ↓ ABC45678901234-2 手作業では5時間かかりましたがミスだらけです。 まだ数ファイル残っており手作業では厳しいのでマクロを 作成したいのですが、どう記述していのかまったく検討が付きません。 どうかよろしくお願いします。

  • EXCEL VBAの重複行削除について

    EXCEL2010を使用しています。 添付画像の「重複行削除 前」の表を、RemoveDuplicatesで下の様にコードを組んで A列で重複する行を見て重複する行を削除しています。 Public Sub 重複行削除()  With WorkSheets(1)   .Range(.Cells(1, 1), .Cells(8, 3)).RemoveDuplicates _      Columns:=1, Header:=xlYes  End With End Sub すると、日付の新しいデータが削除され、古いデータが残ってしまいます。 (添付画像の「重複行削除 後」) ReniveDuplicates Columns:=Array(1,3) とした場合は、すべてのデータが残ってしまいます。 添付画像の「欲しいデータ」の表の様に、 日付の新しいものを残すように重複行削除は出来ないでしょうか? 詳しい方、どうか教えてください。 よろしくお願いします。

  • Excel2003での行重複削除

     Excel2003で、列のセル内容が同一の場合を削除・抽出することは可能でしょうか。例えば、次のようなイメージです。 行番号 A列 B列 行1 A1県 B1市 行2 A1県 B2市 行3 A1県 B3市 行4 A1県 B4市 行5 A2県 B5市 行6 A2県 B6市  ここから、A列が同一の行の重複を削除したいのです。上記では、行1から行4までは「A1県」で同一なので、1つの行だけ残し後の行は削除したい。B列の内容は重複削除で一部消えますが構いません。上記の場合、抽出結果は次のようになります(先頭行だけ残した場合ですが)。 行番号 A列 B列 行1 A1県 B1市 行5 A2県 B5市  データベースが大きいため、手作業で削除して行くのは大変です。適当な方法がありましたら、是非、ご教示ください。  どうぞ宜しくお願いします。  

  • エクセルで重複行をすべて削除するにはどうすればよいでしょうか?

    例えば、昇順で並べ替えて以下のようにエクセルで準備したとします。   A列 1行 aa 2行 aa 3行 bb 4行 bb 5行 cc 6行 cc 7行 dd 8行 ee そこで重複する行ごと削除したいのですがどうすればよいでしょうか? 削除結果は   A列 1行 dd 2行 ee 上記のようにしたいです。 重複する1行だけは削除できたのですが、 2行ごと削除の方法がわかりません。 ご教授いただきたく存じます。 よろしくお願いいたします。

  • 重複したコメントを削除して書き出すマクロ

    こんにちは、 先日、重複したコメントを削除するマクロの件で質問したのですが、またコメントの件で質問をお願いします。 A列~H列の1~100行目までにコメントが入力されたセルがあります。コメントのいくつかは重複しています。列が違う場合は、同じコメントでも書き出し、かつ、列ごとにコメントを151行目以降に書き出したい(同じ列で重複している場合は繰り返し書き出さないが、列が異なる場合は、他の列にあっても書き出したい)のですが、どのようにしたらいいでしょうか? 例えばA列のコメントが1,2,3,4,5,3,4,5だと1,2,3,4,5と書き出し、B列のコメントが2,3,4,5,6,1,2,3だと1,2,3,4,5,6と書き出したいのです。 いろいろ試行錯誤したのですが、どうしてもうまくいかないのでよろしくお願いします。

  • エクセル2000マクロで行を削除したいのですが

    エクセル2000で、社員台帳から特定の人物だけ削除しようと思いマクロを 組んだのですが、どうもうまくいきません。 社員には全員00から99の2桁のコードがついています。(列Aにあります) 2桁のコードが00の人物だけ削除したいのですが。 次のようなマクロを組んだのですが、どこがおかしいのでしょうか? とりあえず、20行程度処理しようと思います。 Range("A2").Select For Each セル In Range("A2:A20") If セル = "00" Then Selection.EntireRow.Delete Next

  • エクセルで重複行を削除

    エクセルで重複行を削除したいのですが、 どうすればいいでしょうか? たとえば名前が1列に並んでいて ××○○ 山田太郎 △田□□ 山田太郎 こんなとき、山田太郎を1行だけに、 まとめたいのですが・・・ データが多いのでソートして 1件1件削除していくのも時間がかかります。 何かいい方法がありましたら よろしくお願いします。

専門家に質問してみよう