このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】連想配列を一次元配列に変換する方法(Dictionary)

2023年1月13日

連想配列を一次元配列に変換する方法(Dictionary)

今回は連想配列を一次元配列に変換する方法を紹介します。

使うケースは少ないかもしれませんが、私は連想配列の中身をソートするために一次元配列に変換したことがあります。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

連想配列を一次元配列に変換する方法

Sub Dic2Arr()
    '連想配列のアイテムを一次元配列へ変換
    
    Dim dic As Object
    Set dic = CreateObject("Scripting.Dictionary")
    
    dic.Add "key1", "item1"
    dic.Add "key2", "item2"
    dic.Add "key3", "item3"

    Dim oneArr()
    oneArr = dic.Items 'item1~item3の入った一次元配列
End Sub

連想配列を一次元配列に変換するサンプルコードになります。

コードをステップ実行すると、oneArrがitem1~item3の入った一次元配列配列になるのが分かります。

oneArr = dic.Items 'item1~item3の入った一次元配列

ポイントはこの部分で、連想配列でItemsメソッドを使うとすべてのアイテムを配列で返します。

この配列をoneArrで受け取っています。

連想配列のKeyを一次元配列に変換する方法

Sub Keys2Arr()
    '連想配列のKeyを一次元配列へ変換
    
    Dim dic As Object
    Set dic = CreateObject("Scripting.Dictionary")
    
    dic.Add "key1", "item1"
    dic.Add "key2", "item2"
    dic.Add "key3", "item3"

    Dim oneArr()
    oneArr = dic.Keys 'key1~key3の入った一次元配列
    
End Sub

先ほどは連想配列のアイテムを一次元配列にしましたが、同じようにKeyも一次元配列に変換できます。

oneArr = dic.Keys 'key1~key3の入った一次元配列

連想配列のItemsメソッドを使うとすべてのKeyを配列で返します。

この配列をoneArrで受け取っています。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/11/21 14:41:17時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい