- ベストアンサー
Excel 2003重複削除マクロとは?
- Excel 2003での重複削除マクロの使い方について教えてください。
- WinXP HE SP2およびOffice 2003環境で、銘柄の重複を削除するマクロを使いたいです。
- 日経300投信のチャイナボーチーが重複しているデータがあり、それを削除する必要があります。銘柄コードと銘柄名が重複しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 実は、1行目からデータになっています。 1行目は項目名と判断されてしまいますので提示の例ではうまく行きましたが、正しくありません。 では、マクロ作業上でダミーで先頭に1行追加し、項目を振り、終了後にダミー行を削除するように変えてみました。 逐条で解説もつけておきます。 Sub test03() Dim x As Long 'xは長整数と宣言 With ActiveSheet 'アクティブなシートで .Rows("1").Insert Shift:=xlDown 'ダミー行挿入 .Range("A1") = "Code" 'ダミー項目1 .Range("B1") = "Name" 'ダミー項目2 x = .Cells(.Rows.Count, 1).End(xlUp).Row '最終行取得 .Range("A1:B" & x).Select '範囲選択 Selection.AdvancedFilter Action:=xlFilterInPlace, Unique:=True '重複を表示しない Selection.Copy .Range("C1") 'コピーしてC1以降に貼り付け .ShowAllData 'すべてを表示 .Rows("1").Delete Shift:=xlUp 'ダミー行削除 End With End Sub
その他の回答 (2)
- merlionXX
- ベストアンサー率48% (1930/4007)
#1のmerlionXXです。 表の形式によってはRange("A1").CurrentRegionではうまく取得できない場合がありますので.Range("A1:B" & x)と明示するようにしました。 こちらでためしてください。 Sub test02() Dim x As Long With ActiveSheet x = .Cells(.Rows.Count, 1).End(xlUp).Row .Range("A1:B" & x).Select Selection.AdvancedFilter Action:=xlFilterInPlace, Unique:=True Selection.Copy .Range("C1") .ShowAllData End With End Sub
補足
ありがとう御座います。OKでした。 実は、1行目からデータになっています。 よろしくお願いします。
- merlionXX
- ベストアンサー率48% (1930/4007)
前提条件 A列が銘柄コード、B列が名称とします。 表はセルA1から始まっており、1行目が項目名で2行目以降にデータがあり、データに空白行がないものとします。 以下をお試しください。 Sub test01() With ActiveSheet .Range("A1").CurrentRegion.Select Selection.AdvancedFilter Action:=xlFilterInPlace, Unique:=True Selection.Copy .Range("C1").PasteSpecial .ShowAllData End With Application.CutCopyMode = False End Sub
お礼
希望通りできました。 ありがとう御座いました。