Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : 指定なし)
二次元配列の重複について
投稿日時: 21/12/19 00:02:36
投稿者: aSh998

二次元配列について質問です。
 
もし1次元目の値が同じであれば、その下に値を格納したいときどのようにすればよいでしょうか。
 
【配列に格納する値】
シートA
 A列 B列 
 ○ 1
 ○ 2
 □ 1
 
【理想の結果】
Dim var() as variant
 
 var(0) ○
 var(0,0) 1
 var(0,1) 2
 var(1) □
 var(1,0) 1 
 
説明が下手で申し訳ございませんが、
お分かりの方いらっしゃいましたら教えていただければと思います。
 
 

回答
投稿日時: 21/12/19 08:18:04
投稿者: simple

2×2の二次元配列であれば、使えるのは
var(0,0)
var(0,1)
var(1,0)
var(1,1)
だけであって、このほかに
var(0)や、var(1)というものが使えるわけではありません。
インデックスが有効範囲にありません、とエラーになります。
(ローカルウインドウの表示で誤解されるかもしれませんが)
 
こういう場合によく使われるのは、辞書(dictionary)というデータ構造です。
"〇" --> Array(1,2)
"□" --> Array(3)
のような対応関係をデータとして持てます。
 
配列であれば、整数のindexをつけてvar(0,1)のように呼び出しますが、
dictionaryの場合は、
dic("〇")のように、文字列で指定できます。
Array(1,2)という値(この場合は一次元配列)が取得できます。
 
・辞書のkey(上記の"〇"にあたる)は、通常は、文字列や数値です。
・一方、item(上記のArray(1,2)にあたる)には、色々なものが指定できます。
・単純な、数値・文字列などでも、配列でも、場合によっては辞書そのものを持たせることも可能です。
 
"ExcelVBA Dictionary"などとネット上で検索すると、色々が記事が読めます。
参考にしてみてください。
 
取り急ぎ、コメントまで。
他のかたからも回答があるでしょう。

回答
投稿日時: 21/12/19 22:59:13
投稿者: simple

どのようなことを実行されたいかを説明されたほうが有益でしょう。
つまり求めるアウトプットを説明して下さい。

トピックに返信