[[20220110111321]] 『配列内で重複データの削除』(Lion) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『配列内で重複データの削除』(Lion)

お世話になります。

Sheet1の列Aに重複のある文字列データがあります。例えばということで,以下を設定します。

名前(タイトル行)
りんご
みかん
りんご
ばなな
なし
なし
みかん
ばなな

これをrngという配列に入れて,その中で重複データの削除を行い,その結果をSheet2に出力したいのですが,どう書いたらいいのでしょうか?素人ですので,わかりやすいものでご説明いただけると幸いです。

Sub test()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim rng

Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")

rng = ws1.Range("A1").CurrentRegion.RemoveDuplicates Columns:=1, Header:=xlYes

ws2.Range("A1").Value = rng

End Sub

< 使用 Excel:Office365、使用 OS:unknown >


配列ではありませんが
  Sub test()
    Worksheets("Sheet1").Columns(1).AdvancedFilter _
          xlFilterCopy, , Worksheets("Sheet2").Range("A1"), True
End Sub

(マナ) 2022/01/10(月) 11:33


>これをrngという配列に入れて,その中で重複データの削除を行い,その結果をSheet2に出力したい
なぜ↑のようにしたいのですか?

悩むくらいなら↓のようにすれば既知の方法で対処できませんか?

 (1)Sheet1の列Aのデータをコピーする
 (2)Sheet2にそのまま貼り付ける
 (3)(2)に対して重複の削除をしてユニークデータにする

(もこな2 ) 2022/01/10(月) 11:35


見出しと同じものがでてこないなら
    rng = WorksheetFunction.Unique(ws1.Columns(1))
    ws2.Range("A1").Resize(UBound(rng)).Value = rng

(マナ) 2022/01/10(月) 11:43


マナ様,もこな2様

早速ご教示いただきましてありがとうございます。もこな2様のおっしゃる通りですね。マナ様からご教示いただきました2つ目のコードでもうまくいきました。

ありがとうございました。
(Lion) 2022/01/10(月) 11:52


解決したようですが追加で。
どうしても"配列"を使うことに拘りたいということであれば↓が参考になるとおもいます。
 【参考】
http://officetanaka.net/excel/vba/tips/tips80.htm

当初思っていたのとちょっと違うかもしれませんがこういう感じとか。

    Sub 研究用1()
        Stop 'ブレークポイントの代わり(以下ステップ実行して研究のこと)

        Dim Dic, i As Long
        Set Dic = CreateObject("Scripting.Dictionary")

        With Worksheets("Sheet1")
            '重複データを除きながら【連想配列】に格納する
            On Error Resume Next
            For i = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row
                Dic.Add .Cells(i, "A").Value, ""
            Next i
            On Error GoTo 0
        End With
        Worksheets("Sheet2").Range("A1").Resize(Dic.Count).Value = WorksheetFunction.Transpose(Dic.Keys)

        '一次元配列に格納することがマストなら
        Dim 配列 As Variant
        配列 = Dic.Keys
    End Sub

(もこな2 ) 2022/01/10(月) 12:22


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.