Existsメソッド(Dictionary)

Dictionaryオブジェクトから特定のkeyの存在確認をするメソッドです

'Keyの存在確認
Debug.Print zz辞書.Exists(1)

Dictionaryオブジェクトに作成したリストの中から、特定のものがあるかを調べるには「Exists」メソッドを使用します

このメソッドは、keyでの判定を行います
itemでの判定は行えません、itemは重複が可能なためです

このメソッドこそ、このDictionaryオブジェクトの真骨頂といっても過言では無いメソッドです
このメソッドの為に、このオブジェクトを使用する目的になるほどです

メソッドの書式

引数(太字は必須引数)
Exists (key)

「key」はDictionaryオブジェクトに登録したリストデータのkeyを指定します
引数はこれだけで、必須項目です
この引数に指定した内容と一致するデータが存在すれば「True」、存在しなければ「False」が返されます
存在に関わらず、itemが返されることはありませんので注意してください

実際の使用例

zz辞書.Add 1, "あ"
zz辞書.Add 2, Range("A1:A3")
zz辞書.Add 3, Array("あ", "い")

このコードによりリストが作成されます
3行のリストデータを作成しています、ここから特定のデータの存在確認を行ってみます

zz辞書.Exists(1)
→→→ True

ここでのkeyの検索は「1」を指定しています
上記のリスト作成でkeyには「1,2,3」の3つの整数値が作成されているため、ここでは指定したデータが見つかるため、「True」が返されます

zz辞書.Exists(4)
→→→ False

このコードを実行すると「False」が返されます
これは「4」という整数値がkeyに存在しないためです

こうして、指定したデータが存在するかどうかを判定することで参照したいデータがリストに登録されたデータであるかを調べることが出来ます
また、重複しないリストを作成する際に取得したいデータがリストにあるかどうかを、いちいち全ての要素を検証せずに判定が出来ます

ちなみに、このメソッドには型も重要になります

zz辞書.Exists(CStr(1))
→→→ False

このコードを実行すると、今度は「False」が返されます
指定の引数の数字は同じ「1」が指定されています

ですが、今回はCStr関数により整数値から文字列に変換されています
こうして、型に相違があると別の値と認識するため、存在しないと判断します

基本的にこのメソッドを使用する際に、こうした変換を行うことが無ければ問題はありません

しかし、Addメソッドによりリスト作成する際に注意する必要があります
それは、セルの値を取得する際などです
セルには数値や日付を文字列として入力することが可能です
逆に文字列と思っていたら、表示形式で実際は数値だったりもします

このセルを取得すると、数値ではなく文字列の数字を取得するので整数値をメソッドの引数に指定した場合、永遠にFalseのままです
見た目は全く同じ「1」であっても、存在しないことにしてしまいます

この型のズレを調整しておかないとリストに取得したはずで、見た目も全く同じデータなのになぜかExistsメソッドでFalseしか返ってこない、という現象に遭遇します

特にまだ変数に慣れきっていないような方は、型の理解が難しいかもしれません

ですが、このメソッドの利用価値が非常に高いため、この点はしっかり理解しておいてください
そうすることでより便利にこのExistsメソッドを利用できるようになります