VBA: 2次元配列とDictionaryを組み合わせて最速のデータ検索を実現
Вставка
- Опубліковано 5 лют 2025
- 2つの大量のリストを比較してデータを抽出するVBAの説明動画です。
動画内では触れてませんが、配列も使わないベタなFor-Nextのコードも試したら、2時間近く掛かってしまいました。。。
Dictionaryの説明動画
VBA: Dictionary(連想配列) 基本から高度実践例まで
• VBA: Dictionary(連想配列) ...
2次元配列の説明動画
BA配列の基本⑤:2次元配列
• Excel VBA: 2次元配列を基本から解説
尚、動画のVBAコードでは2つのWorksheet(wsSales, wsPay)は変数ではなく「オブジェクト名」で指定しています。従って変数宣言はしていません。
オブジェクト名によるシートの指定についてはこちらをご覧ください。
ワークシートをオブジェクト名で指定すれば、シート名やインデックスの変化も問題なし
• ワークシートをオブジェクト名で指定すれば、シ...
BGM: MusMus
musmus.main.jp/
凄い!こんなに処理時間が変わってくるとは驚きです!
私も驚きました!
投稿ありがとうございます。
最近PythonばかりなのでVBAもまた。
はい、VBAも復活させてください。
二次元配列に特化した投稿ありがとうございます。動画でかなり学ばせていただきました。VBAのクラスを学ぶタイミングでPythonでも同様の処理を行いたいと・・。VBAもかなり速いコードがかけるという意味で併用していきたいと思います。次の動画もよろしくお願いいたします。
コメントありがとうございます。とても励みになります。
たとえば、商品毎ごとに総受注数を集計したいのですが、受注オーダーが複数存在しているので、今は配列の中で加算して(forの入れ子)、合計した数値を配列に格納しています。
Existsは1対1の時は、有効そうですが、1対複数の時はどのような方法がありますか。
対象になるものが複数ある場合は、やはり加算方式になってしまいますか。何か知見がございましたら、教えて頂けますと助かります。
複数のオーダーを持つ商品毎に、受注数を集計する、という課題と理解しました。Dictionaryが得意とするケースですが、文書で説明は難しく、以下の動画をご参照ください。
VBA: Dictionary(連想配列) 基本から高度実践例まで(6:00から該当のケースになります)
ua-cam.com/video/_yh3ZjQGE5I/v-deo.html
@@rintavlog3 返信ありがとうございます!勉強させていただきます。
いつも勉強になる動画ありがとうございます。
6:00のあたりでexistを使って判定していますが、dictionaryで直接キーを指定してアイテムを取得する場合に、ヒットしない場合エラーになりますか?また、速度的な違いは出るでしょうか?
エラーにならずに空白(empty)が返されます。速度的には大きな影響はないと思いますが、検証はしていません。