Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


999 / 76735 ←次へ | 前へ→

【81394】Re:表の比較
回答  γ  - 20/7/15(水) 9:15 -

引用なし
パスワード
   さて、通常の配列は、整数のインデックスを持ちますが、
このケースでは、
 "ABC41621" ---> Array(100,"[Book1]Sheet1!$A$1")
 "ABC41622" ---> Array(200,"[Book1]Sheet1!$A$2")
 "ABC41623" ---> Array(300,"[Book1]Sheet1!$A$3")
という対応関係に関する情報が必要になります。

これを配列で管理しようとしたら、
 0番目のindexに Array(100,"[Book1]Sheet1!$A$1") を持たせ
 1番目のindexに Array(200,"[Book1]Sheet1!$A$2") を持たせ
 2番目のindexに Array(300,"[Book1]Sheet1!$A$3") を持たせ
といった一次元配列に納めるんですか?

すると、
"ABC41621"が何番目の要素になるかは、どうやって知るんですか?

喩えていえば、
今後、都道府県名は使わずに、0県,1県、2県とよぶことにする、
とルール化するようなものですな。現場は混乱するでしょう。

そのためには、別途
 "ABC41621" ---> 0
 "ABC41622" ---> 1
 "ABC41623" ---> 2
というような関係をどこかに持たせて、
ユーザー自身が逐一検索しなければなりません。
そうしたことを、Dictinaryは内部で効率的に行ってくれるのです。
(Hashテーブルという特別に工夫した仕組みを活用することで
 高速・効率的に行っているのが、Dictionaryというデータ構造なわけです。)

VBAの元になっているVB6という言語仕様には、Dictionaryを持っておらず、
外部のライブラリーに依存していますが、
気の利いたプログラム言語では、必ずといってよいほど言語仕様として
装備されている、とても一般的なデータ構造です。
(名称は色々で、Hashとか、DictionaryとかAssociated Arrayとか呼ばれます)

ですから、配列と同程度に普通に使えるものですし、
Dictinaryを使ったので重くなったということは無いはずです。


重くなってきたというのは、基本的にはデータ量が増えたことに起因しているのでしょう。
関係しなくなっている古いデータがあれば、それは別途のログに移すとか、
そうした方面の工夫の余地はありませんか?

0 hits

【73761】表の比較 t−k 13/2/10(日) 15:38 質問
【73762】Re:表の比較 UO3 13/2/10(日) 19:22 発言
【73763】Re:表の比較 UO3 13/2/10(日) 19:51 発言
【73766】Re:表の比較 t−k 13/2/10(日) 22:56 発言
【73767】Re:表の比較 UO3 13/2/11(月) 6:46 発言
【75126】Re:表の比較 T-k 13/12/14(土) 0:02 質問
【75127】Re:表の比較 γ 13/12/14(土) 6:36 発言
【75133】Re:表の比較 T-k 13/12/17(火) 0:55 発言
【75134】Re:表の比較 γ 13/12/17(火) 6:35 発言
【75135】Re:表の比較 T-k 13/12/18(水) 0:28 発言
【75138】Re:表の比較 γ 13/12/18(水) 23:17 発言
【75141】Re:表の比較 T-k 13/12/20(金) 0:36 発言
【75143】Re:表の比較 γ 13/12/20(金) 7:16 発言
【75147】Re:表の比較 T-k 13/12/20(金) 23:50 お礼
【73768】Re:表の比較 UO3 13/2/11(月) 14:08 発言
【73770】Re:表の比較 t−k 13/2/12(火) 23:38 お礼
【73780】Re:表の比較 UO3 13/2/13(水) 19:30 発言
【81386】Re:表の比較 T-K 20/7/13(月) 23:33 質問[未読]
【81388】Re:表の比較 γ 20/7/14(火) 5:43 発言[未読]
【81393】Re:表の比較 T-K 20/7/14(火) 19:54 発言[未読]
【81394】Re:表の比較 γ 20/7/15(水) 9:15 回答[未読]
【81395】Re:表の比較 T-K 20/7/15(水) 17:45 お礼[未読]
【81396】Re:表の比較 マナ 20/7/15(水) 21:02 発言[未読]
【81398】Re:表の比較 マナ 20/7/15(水) 21:40 発言[未読]
【81397】Re:表の比較 マナ 20/7/15(水) 21:04 発言[未読]
【81399】Re:表の比較 T-K 20/7/15(水) 23:57 発言[未読]
【81400】Re:表の比較 マナ 20/7/16(木) 21:05 発言[未読]
【81410】Re:表の比較 T-K 20/7/23(木) 23:51 発言[未読]
【81412】Re:表の比較 マナ 20/7/24(金) 11:03 発言[未読]
【81415】Re:表の比較 マナ 20/7/24(金) 11:51 発言[未読]
【81429】Re:表の比較 T-K 20/7/29(水) 23:31 発言[未読]
【81433】Re:表の比較 マナ 20/7/30(木) 19:30 発言[未読]
【81434】Re:表の比較 マナ 20/7/30(木) 20:20 発言[未読]
【81435】Re:表の比較 T–K 20/8/1(土) 12:29 お礼[未読]

999 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free