![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
Excel2007からは重複したデータを消すことは出来ますが、同じ文字列を全部消す(ひとつものこらず)方法が無いか悩んでいます。
例えば、A1に「1234」 A2に「4231」 A3に「1234」がある場合、A1とA3どちらも削除したいです。
このような事が自動で出来るマクロをどのようにすれば作れるでしょうか?
私が考えているのは、
1)A列をソート
2)一つ前の行と比較して同じならどちらの行も消す (同じデータは、2つ以上ないです)
という具合なのですが、2の部分の書き方が分かりません。
No.1ベストアンサー
- 回答日時:
いちいちループとかまわしません。
sub macro1()
range("1:1").insert
range("B:B").insert
range("B1") = "head"
range("B2:B" & range("A65536").end(xlup).row).formula = "=COUNTIF(A:A,A2)"
range("A:B").autofilter field:=2, criteria1:=">1"
activesheet.autofilter.range.delete shift:=xlshiftup
end sub
あなたのやりたいようにしたいなら。
sub macro2()
dim i as long
range("A:A").sort key1:=range("A1"), order1:=xlascending, header:=xlno
for i = range("A65536").end(xlup).row to 2 step -1
if cells(i, "A") = cells(i - 1, "A") then
range(cells(i - 1, "A"), cells(i, "A")).delete shift:=xlshiftup
end if
next i
end sub
解法を教えていただいて、すごくよくわかりました。
B列に同じ数字をカウントする式を入れてそれをフィルタで抽出、削除する、という方法ですね。
明快なご回答ありがとうございました。
No.2
- 回答日時:
一例です。
同一行を抽出後、行削除しています。
Sub sample()
Dim wk()
Application.ScreenUpdating = False
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Application.CountIf(Range("A:A"), Cells(i, 1)) > 1 Then
ReDim Preserve wk(n)
wk(n) = Cells(i, 1).Row
n = n + 1
End If
Next
For i = 0 To UBound(wk)
Rows(wk(i)).Delete
Next
Application.ScreenUpdating = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】A列にある連続したデータの1番下に文字列を入力したい 1 2023/01/28 04:40
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Visual Basic(VBA) 【至急】 当方初心者です。 マクロについて知恵をお貸しください。 ★したい動作 ①リストE列2行目か 4 2022/09/29 18:56
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) マクロでコピーすると数式が表示される 1 2022/09/09 20:21
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UWSCでie内のデータを取得しエ...
-
WPSOffice_マクロの有効化について
-
VBAで保存しないで閉じると空の...
-
Excel マクロの編集がグレーに...
-
Excelでマクロ実行中に画面を固...
-
[フィルターオプションの設定]...
-
Excelのマクロでボタンを押すと...
-
列から特定の文字列検索→該当以...
-
EXCEL VBA マクロ
-
エクセル関数>参照ファイル名...
-
エクセルの表を複数枚印刷した...
-
エクセル;相対パスを絶対パスへ...
-
VB.NETによるEXCELの行挿入
-
エクセル ボタンに設定したマク...
-
Excel(OfficeXP)のファイル保存...
-
エクセル 図形の寸法を取得したい
-
マクロで最終行を取得してコピ...
-
コピーしたデータを2行ずつに貼...
-
【マクロ】プリントスクリーン...
-
VBAで入力の結果を他のセルに反...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列内データにsmallを使う
-
結合したセルの並び替え(エク...
-
【VBA】 通し番号の入力について
-
UWSCでie内のデータを取得しエ...
-
Excel2003 マクロで同じ文字列...
-
楽天RSS エクセルのマクロで10...
-
Excel2013 マクロ(初心者)2
-
Excel vba PDF 複数ファイルを...
-
VBAで保存しないで閉じると空の...
-
Excel マクロの編集がグレーに...
-
WPSOffice_マクロの有効化について
-
エクセル関数>参照ファイル名...
-
Excelのマクロでボタンを押すと...
-
エクセル ボタンに設定したマク...
-
エクセルで、「いいね」のよう...
-
エクセルの表を複数枚印刷した...
-
エクセル マクロ名にブック名...
-
【Excel VBA】マクロでExcel自...
-
エクセルの、記録を終了したマ...
-
マクロの保存先、開いてるすべ...
おすすめ情報