Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3837 / 13645 ツリー ←次へ | 前へ→

【59901】重複を除いてデータ抽出 武蔵 09/1/17(土) 1:12 質問[未読]
【59903】Re:重複を除いてデータ抽出 Yuki 09/1/17(土) 8:12 発言[未読]
【59905】Re:重複を除いてデータ抽出 武蔵 09/1/17(土) 17:41 お礼[未読]
【59904】Re:重複を除いてデータ抽出 マルチネス 09/1/17(土) 9:37 発言[未読]
【59906】Re:重複を除いてデータ抽出 武蔵 09/1/17(土) 17:46 お礼[未読]
【59907】Re:重複を除いてデータ抽出 マルチ 09/1/17(土) 21:55 発言[未読]

【59901】重複を除いてデータ抽出
質問  武蔵  - 09/1/17(土) 1:12 -

引用なし
パスワード
   初めまして。マクロ初心者のため、皆様のお力をお貸しください。
罫線(セル下の実線)と罫線(セル下の実線)に囲まれているデータを
1つのグループとしてみて、
重複しているグループを除いて抽出したいのです。
しかも、行数は必ず2行とは限らないのです…

A列    B列    C列
−−−−−−−−−−−−−−−−−−
あい    かき    あめ    ←1.グループ 
あい    さめ    つち    ←1.グループ 
−−−−−−−−−−−−−−−−−−
うめ    しろ    くろ    ←2.グループ
みず    なな    うし    ←2.グループ
いけ    なみ    いえ    ←2.グループ
−−−−−−−−−−−−−−−−−−
あい    かき    あめ    ←3.グループ
あい    さめ    つち    ←3.グループ


1行目と2行目の1.グループと5、6行目の3.グループが重複しているので
最後の3.グループ以外を抽出したいのです。

説明下手ですが、どうかお力をお貸しください。

【59903】Re:重複を除いてデータ抽出
発言  Yuki  - 09/1/17(土) 8:12 -

引用なし
パスワード
   ▼武蔵 さん:
>初めまして。マクロ初心者のため、皆様のお力をお貸しください。
>罫線(セル下の実線)と罫線(セル下の実線)に囲まれているデータを
>1つのグループとしてみて、
>重複しているグループを除いて抽出したいのです。
>しかも、行数は必ず2行とは限らないのです…

こんにちは。
こんな感じでしょうか


Sub TEST()
  Dim v1 As Variant
  Dim v2 As Variant
  Dim i  As Long
  Dim j  As Long
  Dim k  As Long
  Dim Dic As Object
  
  Set Dic = CreateObject("Scripting.Dictionary")
  With Worksheets(1)
    For i = 1 To .Range("A" & .Rows.Count).End(xlUp).Row
      v1 = .Range(.Cells(i, 1), .Cells(i, 3)).Value
      v1 = Application.Index(v1, 0)
      v2 = v2 & Join(v1, ",") & vbCrLf
      If .Cells(i, 1).Borders(xlEdgeBottom).LineStyle = xlContinuous Then
        Dic(v2) = Empty
        v2 = ""
      End If
    Next
  End With
  v1 = Dic.Keys
  With Worksheets(2)
    .Cells.Clear
    For i = 0 To UBound(v1)
      v2 = Split(v1(i), vbCrLf)
      For j = 0 To UBound(v2) - 1
        k = k + 1
        .Cells(k, 1).Resize(, 3).Value = Split(v2(j), ",")
        If j = UBound(v2) - 1 Then
          With .Cells(k, 1).Resize(, 3).Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
          End With
        End If
      Next
    Next
  End With
End Sub

【59904】Re:重複を除いてデータ抽出
発言  マルチネス  - 09/1/17(土) 9:37 -

引用なし
パスワード
   サロン、ラウンジほかにマルチしてますね。
こちらはマルチ禁止ではないですけど、他にも
マルチしていることを明示しろ、と書いてありますよね?

--------------------
http://www.vbalab.net/bbspolicy.html
マルチポストについて
別のサイト(掲示板)にまったく同じ目的の投稿をすることを、一般に「マルチポスト」といいます。当質問箱では、マルチポストは原則認めています。つまり、ほかのサイトで質問したことをこのサイトで質問してもかまわないということです。

しかし、もしマルチポストをするのなら、可能な限り「○○にも同じ質問を出しました」ということを宣言してください。そして、仮に他のサイトで解決したのなら、ここにも必ずその顛末を書いてください。質問しっぱなし、というのはモラルに反します。「解決したからいいや」というのではありません。

また、マルチポストを明示的に禁止しているサイトとのマルチポストをしてはいけません。
----------------------

【59905】Re:重複を除いてデータ抽出
お礼  武蔵  - 09/1/17(土) 17:41 -

引用なし
パスワード
   ▼Yuki さん:
早速のご回答ありがとうございます。
試してみてうまくできました。
実際のデータに合わせて列数を増やして行いましたが、
完成イメージ通りうまくできました。

言葉足らずで解りにくい質問ですいませんでした。
お忙しい中ご回答頂きましてありがとうございました!!

【59906】Re:重複を除いてデータ抽出
お礼  武蔵  - 09/1/17(土) 17:46 -

引用なし
パスワード
   ▼マルチネス さん:
>マルチしていることを明示しろ、と書いてありますよね?
追い込まれ慌てていたために、規約をよく読まずにいました。
申し訳ございませんでした。
VBA質問箱基本ポリシーをよく確認し、自分に落ち度があったことを認めます。
質問内容、経緯なども不十分ですね…
ルール違反をし、ご気分を悪くさせてしまい申し訳ありませんでした。

【59907】Re:重複を除いてデータ抽出
発言  マルチ  - 09/1/17(土) 21:55 -

引用なし
パスワード
   ▼武蔵 さん:
ht tp://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?print+200901/09010082.txt
ht tp://excelfactory.net/excelboard/excelvba/excel.cgi?mode=all&namber=119221&rev=0
こっちは放置なのか?

3837 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free