1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【VBA】オートフィルターの重複しないリストを配列に入れよう

Posted at

Excelのオートフィルタで▼を押すと、

重複しないリストが出てくる。
これを配列に入れたい!って思ったことありませんか?
特にcsvデータで数千、数万行のデータを処理する場合、知っておいた方がいい知識です。

ググって調べてみたのですが、どれも冗長なコードが多くスマートなコードがなかったのでここで紹介します。

    Dim Dic As Dictionary, Data As Variant,i As Long
    Set Dic = CreateObject("Scripting.Dictionary")
    Data = ActiveSheet.cells(1,1).currentRegion.Offset(1,0)  

    i = 1
    Do While Data(i, 1) <> ""

        buf = Data(i, 2)
        
        If Not Dic.Exists(buf) Then

            Dic.Add buf, buf
        
        End If

        i = i + 1
    Loop

Dictionaryオブジェクトとは、連想配列を使ってデータをまとめて管理できるオブジェクトです。Dictionaryオブジェクトに関して詳細を知りたい方は下記サイトを参考にしてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?