Dictionaryオブジェクトは、連想配列や辞書とよばれるオブジェクトのひとつでキー(Key)とアイテム(Item)とよばれる値をセットにして追加(登録)することができることが大きな特徴です。またDictionaryオブジェクトは、複数の便利なメソッドとプロパティをもっています。
こちらの記事では、連想配列(Dictionaryオブジェクト)のメソッドやプロパティの使いかたを紹介しています。
スクール選びにお悩みですか?
動画編集、ロボット、AIとテクノロジーの進化が目まぐるしい時代だからこそ身につけるなら即戦力のスキル。
豊富なコースが選べて、独自開発されたカリキュラムの採用で業界有数の学習継続率!
さらにスキル習得だけじゃない。卒業後の転職や副業まで激アツなサポートが無料!!
Itemsメソッドは連想配列(Dictionaryオブジェクト)のアイテムを配列にしてかえす
Itemsメソッドは、連想配列(Dictionaryオブジェクト)のアイテム(Item)を配列データとして返します。
返される配列データを利用して、アイテム(Item)の取り出しや特定のデータの抽出、計算などの処理ができます。
連想配列(Dictionaryオブジェクト)の大きな特徴は、キー(Key)とアイテム(Item)とよばれるものをセットにして追加(登録)することができる点です。これにより配列などでよく見かけるインデックスでの値の取り出しだけでなく、キー(Key)と呼ばれる文字列を使ってもアイテム(Item)の値を取り出すことができます。
また、連想配列(Dictionaryオブジェクト)はキー(Key)の重複ができないといった特徴も持っているので、この特性を活かした場面に利用できれば、今まで連想配列(Dictionaryオブジェクト)を使ったことがなくても便利さを感じられるでしょう。
※連想配列(Dictionaryオブジェクト)についてはこちら
Itemsメソッド構文
Itemsメソッドの構文
連想配列(Dictionaryオブジェクト).Items
Itemではなく、Itemsであることに注意が必要です。
Itemsメソッドの構成要素と引数
Itemsメソッドの構成要素と引数
要素/引数 | 必須/任意 | 説明 |
---|---|---|
オブジェクト (object) |
必須 | Dictionaryオブジェクトの名前を指定します。 |
Itemsメソッドで返される結果
Dictionaryオブジェクトに登録されているアイテム(Item)の配列データを返します。


Dictionaryオブジェクトのアイテム(Item)をまとめて返すことができるよ。
Itemsメソッドをつかったサンプルマクロ
連想配列(Dictionaryオブジェクト)のItemsメソッドをつかったサンプルマクロを紹介します。
Itemsメソッドでアイテム(Item)の取り出しや、配列変数への代入などのシンプルなものから、特定の文字列を含むアイテム(Item)の抽出など、使いかたの参考例としてご覧ください。
ItemsメソッドでDictionaryオブジェクトのアイテムを取り出す
以下のマクロは、Itemsメソッドを利用して連想配列(Dictionaryオブジェクト)である「MyDic」にアイテム(Item)を取り出します。また、Itemsメソッドはアイテム(Item)を配列データとして返すため、その配列を変数に代入して値の取り出しも行っています。
サンプルコード
1度目のDebug.Printでは、Itemsメソッドを利用してアイテム(Item)に含まれる値を取り出せました。2度目のDebug.Printでは、Itemsメソッドを変数「DicItems」に代入したあとで値を取り出しています。また、Itemsメソッドでインデックスを添え字にすると個別のアイテム(Item)を取り出すこともできます。
Tips

実行結果はJoin関数を使って配列データをまとめて取り出しているよ。
実行結果
あお ・ あか ・ みどり
あお ・ あか ・ みどり ・ あお ・ あか ・ みどり
あお
みどり
あか
Itemsメソッドを利用した1度目のDebug.Printでは3つのアイテム(Item)が取り出され、Itemsメソッドの配列データを変数に代入した2度目のDebug.Printでは、6つアイテム(Item)が取り出せています。また、MyDic.Items(0)などのインデックスを添え字にしたときのDebug.Printは個別にアイテム(Item)が返ってきます。
Itemsメソッドで条件にあうアイテム(Item)を持つキー(Key)を抜き出す
以下のマクロは、連想配列(Dictionaryオブジェクト)である「MyDic2」に登録されているキー(Key)とアイテム(Item)のうち、指定した条件にあったアイテム(Item)とセットとなっているキー(Key)を取り出します。
サンプルコード
MyDic2のアイテム(Item)のうち、「あ」という文字列を含むもののセットとなっているキー(Key)を取り出す処理にしています。サンプルの場合、アイテム(Item)は”あお”、”あか”、”みどり”の3種類のみなので、「あ」が含まれるものは、”あお”、”あか”のアイテム(Item)となります。
Tips
くり返す回数を指定している方法として、UBound関数はアイテム(Item)のインデックスの最大値を返します。サンプルのケースではアイテム(Item)の要素数は9つなので、最大インデックスは8になります。
条件判定で利用しているLike演算子は、文字列を比較をするときに部分一致の判定を可能にするものです。サンプルのケースではアイテム(Item)に「あ」が含まれるときは処理を実行することになります。

Ubound関数や添え字を使うなど、Itemsメソッドを配列として利用してみたよ。
実行結果
クワッス
ホゲータ
メッソン
ヒバニー
アシマリ
ニャビー
アイテム(Item)のうち、「あ」が含まれる”あお”、”あか”とセットとなっているキー(Key)を取り出すことができました。

条件にあうキー(Key)の取り出しができたね。
ItemsメソッドをWorksheetFunctionのメソッド(関数)の引数にする
こちらのマクロは、Itemsメソッドで返される配列データをつかって、WorksheetFunctionオブジェクトのメソッド(関数)をつかって計算を実行しています。
WorksheetFunctionオブジェクトの関数とは、いわゆるエクセルのシート関数のことで、代表的なもので言えば、合計値を計算してくれるSum関数や、平均値を計算してくれるAverage関数などおなじみのものになります。
もちろんすべての関数の引数としてItemsメソッドがつかえるわけではありませんが、Itemsメソッドってこういった使用方法もあるため、参考例としてご覧ください。
サンプルコード
連想配列(Dictionaryオブジェクト)には、キー(Key)に名前を、アイテム(Item)に重さが登録されています。これまでのサンプルと大きく違う点としては、アイテム(Item)がすべて文字列ではなく数値になっています。そのため、Itemsメソッドで返されるものは数値の配列データとなり、この配列を引数としてワークシート関数を実行しています。
実行結果
46.8 kg
5.2 kg
1,067,095.4 kg
1.5 kg
4.5 kg
9.8 kg
実行結果は上から、合計値、平均値、乗算(すべてを掛け算した値)、最小値、中央値、最大値が表示されています。このように、Itemsメソッドを引数としてWorksheetFunctionオブジェクトのメソッド(関数)が実行できました。

Itemsメソッドもアイディアで色々な使いかたができるので便利だね。
コダマのもりブログはにほんブログ村に登録しています。
ブログの記事が役に立ったと感じて頂けたら、フォローお願いいたします。
コメント