• ベストアンサー

エクセルで不要な行を自動で削除する

myRangeの回答

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.4

作業列を使わないでやる方法。 先ず、質問提示のサンプルでテストしてください。   見出し:1行目   データ:2行目以降 としてあります。 また、実際のデータで実行する場合は 当然ながらそれに応じてテーブル範囲など適宜修正のこと。 '-------------------------------------------------- Sub Test()  Dim myDic1, myDic2  Dim Akey1, Akey2  Dim Target As Range  Dim R As Long  Dim LastRow As Long  Set myDic1 = CreateObject("Scripting.Dictionary")  Set myDic2 = CreateObject("Scripting.dictionary")  LastRow = Cells(Rows.Count, "A").End(xlUp).Row '▲▲必要ならソートのコードをここに挿入  For R = LastRow To 2 Step -1    Akey1 = Cells(R, "A").Value    Akey2 = Cells(R, "A").Value & "@" & Cells(R, "B").Value    If myDic1.exists(Akey1) = False Then      myDic1.Add Akey1, ""      myDic2.Add Akey2, ""    Else      If myDic2.exists(Akey2) = False Then        If Target Is Nothing Then          Set Target = Cells(R, "A")        Else          Set Target = Union(Target, Cells(R, "A"))        End If      End If    End If  Next R  Target.EntireRow.Delete xlUp End Sub '------------------------------------------------------ 第1キー(A列)第2キー(B列)のソートが必要なら、 上記▲のところに、下記ソートコードを挿入すること。 '--------------------------------------------------  Range("A1:C" & LastRow).Sort _     Key1:=Range("A2"), Order1:=xlAscending, _     Key2:=Range("B2"), Order2:=xlAscending, _     Header:=xlYes, OrderCustom:=1, MatchCase:=False, _     Orientation:=xlTopToBottom, SortMethod:=xlPinYin '------------------------------------------------------- 以上です。  

bee_soccer
質問者

お礼

ご回答ありがとうございました。 完璧です。やりたいそのままの事が実現出来ました。 本当にありがとうございました。

関連するQ&A

  • Excelで、同一データ行を知るには

    Excel2000で、 A列からD列までまったく同じデータの場合、色をつけてくれる方法を教えてください。 例えば、 A20=A100 かつ B20=B100 かつ C20=C100 かつ D20=D100 の場合、同じデータとして、20行目と100行目に色をつけるようにしたいです。 次善の策として、 A列からD列だけでなく、E列以降もすべてまったく同じデータの場合でもいいです。 なお、ソートしたり、行の順番を変えるのはナシにしてください。 また、A列からD列のデータをくっつけるのも、できれば避けたいです。(それぞれの列を比較して異なる場合でも、くっつけたら同じになる場合もありうるので。)

  • エクセル2010 エラー行を削除

    こんばんは、エクセルのエラー行について解らないので、教えて頂けませんか? 画像の様なデータがあり、A6,B6の様に両方にエラーがある行、A12,B12の様にB列のみにエラーがある行のあるデータがあります。 それを、D列、E列の様に空白にする方法はありますか? ちなみに、2万行ほどありますので、一括で出来ればと思います。 詳しい方、よろしくお願い致します。

  • エクセルの行と列の項目を入れ替えたいのですが

    大きな表を作成しているのですが、行(1、2、3・・)と列(A,B,C,D・・・)を入れかえる必要がでてきました。すなわち、行を現在の列である(A,B,C,D・・・)とし、列を現在の行である(1、2、3、・・・)にしたいのです。こつこつデータを打ち直すしか方法はないのでしょうか?どなたか教えてください。お願い致します。

  • Excelで、行の組み換えについて

    A列からG列までデータが入っているリストがあるのですが、 例えば、1行目から50行目までと、51行目から100行目までを交互に組み入れるには どのようにすればよいでしょうか。   A B C D E F G 1 2 3 ・ ・ ・ 51 52 53 ・ ・ ・ といったものを、   A B C D E F G 1 51 2 52 3 53 ・ ・ ・ のようにしたいのですが、一気に操作できる方法があれば 教えていただきたく、よろしくお願いいたします。

  • エクセルのデータを1行ずつ別々にしたい。

    次のような1列のデータを2列に変更したいのです。 エクセルの初心者なものでいろいろ工夫してみましたがうまくいきません。良い方法を教えてください。データは1000行くらいあります。 元のデータ 1 あ 2 a 3 い 4 b 5 う 6 c ほしいデータ 1 あ    a 2 い    b 3 う    c 4 え    d 5 お    e 6 か     f どうぞ、よろしくお願いします。

  • エクセルで長い行を5行ごとに1列にするには?

    エクセルで行列の入れ替えの応用(になるのでしょうか?)をお尋ねします。 A列に例えば100行のデータが入っているのを、5行ずつ横並べにして、20行にしたい時どうすればよいでしょうか? A列 ------- データ1 データ2 データ3 データ4 データ5 データ6 データ7 データ8 データ9 データ10 (続く…) -------- こうなっているのを、  A列  B列   C列  D列   E列 ------------------------------------------ データ1 データ2 データ3 データ4 データ5 データ6 データ7 データ8 データ9 データ10 (続く…) ---------------------------------------- このように、表示したいのです。 お尋ねしているのは、100行ですが、 実は1500行ほどの長い名簿データが元のものです。 宜しくお願い致します。

  • エクセルマクロ、空白行(セル)の挿入

    データがA、B、C、D、E列100行まであります。 このうちD、E列を除き、エクセルのマクロで1行ごとに空白で10行挿入したいです。 (A、B、C、D列のデータに空白セルを10行分挿入し、下にシフトするイメージ。D、E列はそのまま。) ご教授頂きたく、お願いします。

  • エクセル 複数行にまたがっているデーターを一つの行

    以前に似たようなVBAの質問を元にさらにやりたいVBAがあるのですが、 (前の質問者のURL:http://okwave.jp/qa/q4955096.html)       A列  B列   C列   D列   E列 ~ R列 1行目  佐藤 北海道 りんご S 100 105 2行目  佐藤 北海道 ばなな M 100 105   3行目 伊藤  東京  いちご S 100 105 4行目  伊藤  東京  ばなな M 100 105 上記のようなデーターがあります。これを2行目と4行目を削除し下記のようにしたいのですが       A列  B列      C列      C列 1行目  佐藤 北海道  りんご,ばなな  S,M 2行目  伊藤  東京   いちご,ばなな  S,M A列とB列とE列~R列のデーターが同じでC列,D列,のデータが異なる場合、上記のように一行にまとめたいのです。関数やVBAで上記の処理を出来る方法がありますでしょうか。 

  • エクセルで行を削除するコマンド

    こんにちは、お世話になります。 エクセルのVBAで、↓こんなことをしたいのですが、教えてください。  A列  B列 1 a   11 2 b   12 3 c   20 4 d   21 B列が20以上の時、行ごと削除する。 B列が「20の時」だったら、なんとかうまくいったのですが、 以上、以下、というのが全然わかりません。 それから、もし、皆さんが参考にされているサイトなどがあれば教えてください。 よろしくおねがいします。

  • エクセルVBAでの行削除

    エクセルで下記のようなデータがあり、最終行は2万くらいです。間に空白行はありません  A    B   C     D 年月日 営業所 担当者名 営業成績  0708  東京   ○山   60 0708  大阪   △川   55 0708  東京   ○山   20 0708  名古屋  □元   60 0708  大阪   ×谷   55 0708  大阪   ×谷   10 0708  九州   ▽尾   45 このデータでB列の値が「大阪」と「東京」以外を行削除 するマクロを作ろうとするのですがうまく行きません。 (実際の営業所は1000くらいあって、必要な営業所数は11だけなのですが) よい方法をご存知でしたら、お教えください。