
Excelvbaのdictionaryオブジェクトで、格納されているキーのセルのアドレスを取り出すことはできるのでしょうか?例えば、2番目に№2というキーが格納されているとして、その位置を知りたい時はどのようにすればよいでしょうか?
今は、dictionaryオブジェクトでセルの位置を取得できず仕方がないので、Collectionオブジェクトに格納して、
Debug.Print myCol(2).Address
セルの位置を取得していますが、例えば
Debug.Print mydicKey(1).Address
みたいな方法でdictionaryオブジェクトでもキー(アイテムでもよい)のセルの位置を取得する方法はないでしょうか?
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは
dictionaryは単なる連想配列なので、key:valueの情報以上のものを(付加的に)保存することはありません。
とはいうものの、value値はvariantのようで、オブジェクトを格納可能なようです。
例えば、Rangeオブジェクトをvalue値にセットしておけば、ご質問のような参照も可能になるでしょう。
Dim dic
Set dic = CreateObject("Scripting.Dictionary")
dic.Add "hoge", Range("A1")
dic.Add "fuga", Range("B2")
Debug.Print dic.Item("hoge").Address '→ $A$1
Debug.Print dic.Item("fuga").Address '→ $B$2
No.2
- 回答日時:
No1です。
>予め格納して結びつけて参照~~
「予め」って、何もセットしないで参照することはできないはずですけれど・・・??
(外部のデータでも読み込むなら別ですが…)
「結びつけて」はいないと思います。(意味がよくわかりませんけれど)
No1の説明のように、Rangeオブジェクトを代入しているだけです。
keyとvalueを「結びつけて」という意味でしたなら、もともと連想配列(Dictionary)がそういうものですので・・・
‥‥なんとなくですが、「Dictionaryのキー」とかでご質問なさるよりも、「○〇を××したいのだけれど」という目的のほうで質問なさる方が、適切な実現方法の回答が得られそうな気がしますけれど。
すみません。keyとvalueを「結びつけて」という意味でした。
もしかしたら、可能かも、と思って質問しましたが自分が思うようなことは、連想配列では不可ということが分かったので、自分の質問の
意図としては必要な回答をしていただけています。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) substitute関数についての質問です 3 2023/06/21 11:57
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- JavaScript オブジェクト配列の各メンバを任意の式で評価して、その評価値が最大のオブジェクトを返す関数はありますか 2 2023/05/20 15:02
- 国産バイク ヤマハ sa24j BJについての質問です。 最近、キーをオンの位置まで回しても、セルでもキックでも 2 2023/01/09 19:40
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Excel(エクセル) ExcelVBAで自動調整できますか? 3 2023/08/25 22:59
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- Excel(エクセル) エクセルVBAでチェックボックスにチェックを入れる 1 2022/09/14 00:52
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
【マクロ】【配列】3つのシー...
-
エクセルのdatedif関数を使って...
-
【関数】同じ関数なのに、エラ...
-
エクセルの循環参照、?
-
【マクロ】列を折りたたみ非表...
-
【マクロ】アクティブセルの時...
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】EXCELで読込したCSV...
-
【条件付き書式】シートの中で...
-
【マクロ】オートフィルターの...
-
【マクロ】3行に上から下に並...
-
vba テキストボックスとリフト...
-
【マクロ】A列にある、日付(本...
-
ページが変なふうに切れる
-
エクセルのVBAで集計をしたい
-
エクセル
-
Excelファイルを開くと私だけVA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報