Excel VBA質問箱 IV

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

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


5036 / 13644 ツリー ←次へ | 前へ→

【52956】VLOOKUPに対応するマクロの書き方 マクロ勉強中 07/12/10(月) 15:09 質問[未読]
【52959】Re:VLOOKUPに対応するマクロの書き方 neptune 07/12/10(月) 15:30 回答[未読]
【52970】Re:VLOOKUPに対応するマクロの書き方 マクロ勉強中 07/12/10(月) 17:05 お礼[未読]

【52956】VLOOKUPに対応するマクロの書き方
質問  マクロ勉強中  - 07/12/10(月) 15:09 -

引用なし
パスワード
   只今、マクロ勉強中で壁にぶつかってしまいご教授お願い致します。

以下のように検索文字を検索先であるKEYと比較し、一致した金額を取得する。

関数であればVLOOKUPを使えば簡単ですが
マクロで行う場合、最良の方法があればお願い致します。

私が思いつくのは、FORで検索先のKEYを1つずつマッチングを行う
ただ、この方法だと検索文字が複数ある場合、無駄な処理時間がかかる


(検索文字)      (検索先)
      
  KEY      KEY    金額

  567       1    982,787
  403       2      234
  822       3   1,234,554
          4    899,831
              ・
              ・
              ・

         KEYが1000まで続く

【52959】Re:VLOOKUPに対応するマクロの書き方
回答  neptune  - 07/12/10(月) 15:30 -

引用なし
パスワード
   ▼マクロ勉強中 さん:
こんにちは


>只今、マクロ勉強中で壁にぶつかってしまいご教授お願い致します。
>
>以下のように検索文字を検索先であるKEYと比較し、一致した金額を取得する。
>
>関数であればVLOOKUPを使えば簡単ですが
>マクロで行う場合、最良の方法があればお願い致します。
Keyと金額だけで1000件程度なら、
「dictionary」っ言うのを使うと早いですよ。
ここの掲示板でも検索すると沢山サンプルがあると思います。
検索してみて下さい。

こんな感じです。
過去ログとともに参考にしてください。
Dim d as object
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "アテネ"  ' キーと項目を追加します。
d.Add "b", "ベオグラード"
d.Add "c", "カイロ"

確認してませんが、多分
dim i as object
set i=d.items
msgbox i("a")
で項目が取り出せます。

これが最も良い方法の1つと思います。

【52970】Re:VLOOKUPに対応するマクロの書き方
お礼  マクロ勉強中  - 07/12/10(月) 17:05 -

引用なし
パスワード
   >Keyと金額だけで1000件程度なら、
>「dictionary」っ言うのを使うと早いですよ。
>ここの掲示板でも検索すると沢山サンプルがあると思います。
>検索してみて下さい。
>
>こんな感じです。
>過去ログとともに参考にしてください。
>Dim d as object
>Set d = CreateObject("Scripting.Dictionary")
>d.Add "a", "アテネ"  ' キーと項目を追加します。
>d.Add "b", "ベオグラード"
>d.Add "c", "カイロ"
>
>確認してませんが、多分
>dim i as object
>set i=d.items
>msgbox i("a")
>で項目が取り出せます。
>
>これが最も良い方法の1つと思います。

ありがとうございました。

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