VBA中級: Dictionary(連想配列)をフル活用して、複雑な抽出をスマートに実行してみる
HTML-код
- Опубликовано: 7 окт 2024
- 2つのリスト(A,B)からAB共通のデータ、Aのみのデータ、Bのみのデータという3種類のデータを抽出するには、A,B双方向でVlookup, Xlookupを繰り返さないといけなかったりしますが、Dictonaryを使うとそれがスマートに出来ます。
ポイントは
DictonaryのRemoveメソッドを使うこと。
これはホント便利なので、是非最後までご覧ください。
BGM: MusMus
musmus.main.jp/
いつも貴重な動画、参考にさせていただいております。
今回、リムーブをすることで、A、Bそれぞれのキーで判定しないで済むようになっているのは、流石ですね。参考にさせていただきます。
高速化のために、共通部分は一度、配列に書き出してから、シートに書き出されていますが、
Aのみ、Bのみはセルに直接書き出されていますが、ここも配列に一度書き出してから、シートに書き出した方が、
より高速になるような気がしますが、いかがでしょうか?(セル操作って結構遅いですよね)
Removeメソッドは今回の動画で最も伝えたい機能でした。意図を読み取っていただき、ありがとうございます。
A,Bのみのデータについては、おっしゃる通りで配列を使った方が確実に速くなります。コードが長くなるのと、今回のデータ量でしたら直接書き出しでも速度的に許容範囲かな、と考えてそうした次第です。
でも、思えば全て配列経由で統一した方が分かりやすかったもしれないですね。今後の動画作成の参考とさせていただきます、ありがとうございます。
@@rintavlog3 様 丁寧な回答ありがとうございました