エクセルVBAについて質問です。


A、B列には複数行にわたり文字列が記入されています。
A列に重複する文字列がある場合、

①A列とB列が完全に合致するものはひとつを残して行を削除する。
A列「阪神」B列「タイガース」
A列「阪神」B列「タイガース」
 →重複するので片方を削除(どちらでも可)。

②A列とB列が合致しない場合、その両方の行を切り取って、
 ブック内の最後のシートに貼り付けていく。
A列「阪神」B列「タイガース」
A列「阪神」B列「ドラゴンズ」
 →A列は重複しているのにB列は違う文字列が入っているので、
  両者の行を切り取って、最終シートに貼り付ける
以上、よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2007/11/11 09:05:11
  • 終了:2007/11/13 03:08:32

回答(2件)

id:taknt No.1

きゃづみぃ回答回数13481ベストアンサー獲得回数11982007/11/11 09:30:07

ポイント50pt

Sub Macro1()
    
For a = Range("A65536").End(xlUp).Row To 1 Step -1
    If Cells(a, 1) <> "" Then
        b = Cells(a, 1)
        c = Cells(a, 2)
        For d = a - 1 To 1 Step -1
            If Cells(d, 1) = b And Cells(d, 2) = c Then
                Rows(a &amp; ":" &amp; a).Delete Shift:=xlUp
                Exit For
            End If
        Next d
    End If
Next a

End Sub

ちょっと時間がないのて ひとつだけですが・・・・。

id:taroemon

takntさんいつも本当にありがとうございます。

今回は両者合わせたものが必要ですので、

またお時間のあるときにでもご回答くださいませ。

2007/11/11 09:37:01
id:taknt No.2

きゃづみぃ回答回数13481ベストアンサー獲得回数11982007/11/11 19:09:56

ポイント50pt

Sub Macro2()

If ActiveSheet.Index = Sheets.Count Then
    MsgBox "最後のシートでは実行できません"
    End
End If

n = Range("A65536").End(xlUp).Row

For a = n To 1 Step -1
    b = Cells(a, 1)
    c = Cells(a, 2)
    f = 1
    For d = n To 1 Step -1
        If Cells(d, 1) = b And Cells(d, 2) = c And a <> d Then
            f = 2
            Exit For
        End If
    Next d
    If f = 1 Then
        Rows(a).Delete Shift:=xlUp
        g = Worksheets(Sheets.Count).Range("A65536").End(xlUp).Row + 1
        Worksheets(Sheets.Count).Cells(g, 1) = b
        Worksheets(Sheets.Count).Cells(g, 2) = c
    End If
Next a

End Sub

二つ目のは ちょっとややこしかったので時間が かかりました。

重複しないものを 最後のシートにセットしました。

行とありましたが、セルAとBの列のみです。

一行まるごとだと シートの切り替えが必要となり、画面がちらつきそうなんでちょっと躊躇しました。

ま、うまいことやれば回避できるのかもしれませんが、私には わかりませんでしたので

AとBのセルにそれぞれ値をセットするだけにしました。

id:taroemon

ご回答ありがとうございます。

大変参考になりました。

いつも本当に助かっています。

2007/11/12 03:00:20

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません