• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:重複抽出マクロ)

重複抽出マクロとは?データの整理を簡単にする方法

このQ&Aのポイント
  • 重複抽出マクロは、重複しているデータを抽出して整理するためのマクロです。
  • 特定の列に重複がある場合、重複したデータを見やすく表示します。
  • これにより、データの整理や分析作業を効率的に行うことができます。

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

  • ベストアンサー
回答No.3

Sub 重複抽出2()  '行1に空行を追加する  Rows(1).Insert    'セルA1~E1に値1~5を代入する  Range("A1:E1").Value = [{1,2,3,4,5}]    '列DにセルA2と同じ値があれば TRUE、無ければ FALSE  Range("IV2").Formula = "=COUNTIF(D:D,A2)>0"    '列A~Cにフィルタをかける  '---- 以下は引数の説明 ----   'フィルタをかけた結果を他の場所に保存する   'フィルタ条件 (詳細不明)   '保存場所の指定  Columns("A:C").AdvancedFilter _   Action:=xlFilterCopy, _   CriteriaRange:=Range("IV1:IV2"), _   CopyToRange:=Range("F1:H1")    'セルIV2の式を消去する  Range("IV2").Clear    '行1を削除する  Rows(1).Delete End Sub

esd827
質問者

お礼

希望通りできました。ありがとう御座いました。

その他の回答 (2)

回答No.2

「セル Ax = セル Dy」 ならば セル Fz = セル Ax セル Gz = セル Bx セル Hz = セル Cx (ただし、x, y, z は任意の整数) という代入を実行するということですね。 NG とは?何が問題になっているか記述すべきでしょうね。 今回は「エラー 400」のようですね。 これは http://oshiete1.goo.ne.jp/kotaeru.php3?q=2211259 を参照しましょう。 おそらく列 D ~ E を列 F ~ H にコピーしようとしているのが原因ですね。 2列を3列にコピーすることはできませんから。 コードのコメントが無いと書きましたが、これは Rows(1).Insert '行1に空の行を挿入する。 Range("A1:e1").Value = [{1,2,3,4,5}] 'セル A1 ~ E1 に 1 ~ 5 を代入する ... のようにコードにコメント (説明文) を記述するということです。 C 列のコピーが無いバージョンはうまく動作するということなので、 それを掲載すれば手早く回答できると思います。

esd827
質問者

補足

回答 ありがとう御座います。 C列が無い場合のマクロを示します。 Sub 重複抽出4() Rows(1).Insert Range("A1:d1").Value = [{1,2,3,4}] Range("IV2").Formula = "=COUNTIF(A:A,c2)>0" Columns("C:D").AdvancedFilter _ Action:=xlFilterCopy, _ CriteriaRange:=Range("IV1:IV2"), _ CopyToRange:=Range("e1:f1") Range("IV2").Clear Rows(1).Delete End Sub

回答No.1

補足要求です。 まず「やりたい事」なのですが、 「セル Ax = セル Dy」 かつ 「セル Bx = セル Ey」ならば セル Fz = セル Ax セル Gz = セル Bx セル Hz = セル Cx (ただし、x, y, z は任意の整数) という代入を実行するということで合っているでしょうか? コード (マクロ) の意図を読み取れませんでした。 どのような処理手順になっているかコメントを付けてくれないと理解できません。 ちなみに、私が上記のような処理を行うなら esd827 さんとは異なるコードを書きます。 (私が VBA のことを良く知らないためです。 一般的なプログラミング (例えば C 言語) でのアルゴリズムを VBA で書くことになります。) >列が揃ってなくて、見にくいですが。 これはカンマ区切り (CSV 形式) で掲載すると良いと思います。 カンマ区切りであれば、見た目で列が揃っていなくても Excel にインポートすれば 列が揃った形で表示されます。

esd827
質問者

補足

問い合わせ ありがとう御座います。補足説明します。 1.key pointは、銘柄コードです。 銘柄コードが同じかどうかで、判別すればよいのです。 銘柄名は、3864 三菱製紙 or 三菱紙 となったりしますので。 尚、私のマクロは、c列が無い場合のマクロをベースにしています。実績有り。 2.今後、カンマ区切り (CSV 形式) で掲載します。 よろしくお願いします。

関連するQ&A