Excel VBA質問箱 IV

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

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


14241 / 76734 ←次へ | 前へ→

【67992】Re:dictionaryオブジェクトについて
発言  MIMI  - 11/1/24(月) 11:11 -

引用なし
パスワード
   ▼Yuki さん:

返信ありがとうございます
Yukiさんのアドバイスのようにやってみたところ、いまいち
うまく行かず・・・(私の記述がおかしいのかもしれないけど。。。)

下記のように作成してみました

Dim MyD As Object
Dim MyKey, MyItem

Set MyD = CreateObject("scripting.dictionary")

For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
  If Not MyD.exists(Range("A" & i).Value) Then
    MyD.Add Range("A" & i).Value, Range("B" & i).Value
  End If
Next i

MyKey = MyD.keys
MyItem = MyD.items

Sheets(2).Activate
 For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
   For u = 0 To UBound(MyKey)
    If Range("A" & i).Value Like MyKey(u) Then
     Range("B" & i).Value = MyItem(u)
    End If
   Next u
Next i

しかし、このコードだと、とても時間がかかってしまう難点があります
いろいろと試行錯誤してもう少し考えてみます


>  If MyD.exists(Range("A" & i).Value) Then
>    '↑ココで、指定文字を含むものがあるか?どうか?を判断させたいです
>    ' もう一度聞く
>    If MyD.Item(Range("A" & i).Value) Like "指定文字" Then
>      Range("B" & i).Value = MyD.Item(Range("A" & i).Value)
>    End If
>  End If
>こんな風でどうでしょう。
>検証していないので間違っていたら失礼

3 hits

【67986】dictionaryオブジェクトについて MIMI 11/1/21(金) 16:28 質問
【67987】Re:dictionaryオブジェクトについて Yuki 11/1/21(金) 16:52 発言
【67992】Re:dictionaryオブジェクトについて MIMI 11/1/24(月) 11:11 発言
【68017】Re:dictionaryオブジェクトについて Yuki 11/1/25(火) 14:46 発言
【68089】Re:dictionaryオブジェクトについて MIMI 11/1/31(月) 16:39 発言
【68090】Re:dictionaryオブジェクトについて Yuki 11/1/31(月) 17:32 発言
【67988】Re:dictionaryオブジェクトについて momo 11/1/21(金) 19:27 発言
【67993】Re:dictionaryオブジェクトについて MIMI 11/1/24(月) 11:21 お礼
【67999】Re:dictionaryオブジェクトについて MIMI 11/1/24(月) 16:51 質問
【68001】Re:dictionaryオブジェクトについて momo 11/1/24(月) 17:24 発言
【68021】Re:dictionaryオブジェクトについて MIMI 11/1/25(火) 16:31 お礼
【67991】Re:dictionaryオブジェクトについて 山猿 11/1/23(日) 9:06 発言
【67994】Re:dictionaryオブジェクトについて MIMI 11/1/24(月) 11:23 お礼
【68024】Re:dictionaryオブジェクトについて 山猿 11/1/25(火) 20:20 発言

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