トップページ(目次)

411.表の一覧から重複なしのリストを作成する

連想配列Dictionaryのご紹介。会社名や商品名などの一覧から、重複なしで一覧表を作りたい場合に大変有効です。 辞書を作るような感覚だとわかりやすいと思います。

[実行前後]
 → 
Sub 表の一覧から重複なしのリストを作成する_連想配列Dictionary()
    
    Set 辞書 = CreateObject("Scripting.Dictionary") '辞書モードをセット

    For 行 = 1 To 10 'A1~A10を処理
        
        対象データ = Range("A" & 行) 'A1~A10まで1個づつ処理
        
        If Not 辞書.Exists(対象データ) Then '辞書に有無確認
        
            辞書.Add 対象データ, 1 '無い場合に追加
            
        End If
    
    Next 行
            
    出力データ = 辞書.Keys '集計した辞書を配列に格納
    
    Range("B1").Resize(辞書.Count) = _
    Application.WorksheetFunction.Transpose(出力データ)
    'Resize(辞書.Count)→辞書の大きさに再調整
    'Transpose(出力データ)→横の配列を縦にする必要がある

End Sub
辞書.Add 対象データ, 1 '無い場合に追加 出力データ = 辞書.Keys '集計した辞書を配列に格納 Range("B1").Resize(辞書.Count) = Application.WorksheetFunction.Transpose(出力データ) この3つが、日頃はあまり使わない特別な処理をするので、じっくりと読んで下さい。

Copyright © 2021 https://excel3000.web.fc2.com/ All Rights Reserved.
    inserted by FC2 system