Excel VBA質問箱 IV

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

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


15978 / 76738 ←次へ | 前へ→

【66234】Re:他の変数内と同じものを探す
発言  kanabun  - 10/8/11(水) 15:14 -

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

こんにちは。
neptune さん ご紹介の【dictionary】については
前回のスレッド《【66193】変数内の同じデータ》
のなかで ひとつの利用方法を紹介しましたが、ご理解
されましたでしょうか?

>▼亜矢 さん:
>こんにちは
>
>りんさんの紹介されているDictionaryですが、これは
>便利ですよ♪
>ぜひ習得されることをおすすめします。
>文章中の単語の出現回数とか、
>グループ別の数量カウントなどもできますので。
>
>Sub Try1()
> Dim dic As Object
> Dim MM() As String
> ReDim MM(1 To 8)  ' ------- 少ないデータで実験
>  MM(1) = "りんご"
>  MM(2) = "みかん"
>  MM(3) = "めろん"
>  MM(4) = "りんご"
>  MM(5) = "かき"
>  MM(6) = "もも"
>  MM(7) = "りんご"
>  MM(8) = "みかん"
> 
> Dim i As Long
> 
> Set dic = CreateObject("Scripting.Dictionary")
> For i = 1 To UBound(MM)
>   dic(MM(i)) = Empty 'どんどん配列要素を登録する(重複していれば上書きされる)
> Next
>
>' 結果を元の配列に入れる
> ReDim MM(1 To dic.Count)
> For i = 0 To dic.Count - 1
>   MM(i + 1) = dic.Keys()(i)
> Next
> 
> Set dic = Nothing
>End Sub

>ありがとうございました。上記の通り行って結果解決しました。
とのお返事でしたが、
上記を理解していれば、下も分かりますよね?

Sub Try2()
 '↓ほんとは 変数には すでに 値が入っているのですが...
 ' ここでは ひとつづ 代入しています。
 Dim AA(1 To 5) As String
 Dim BB(1 To 5) As String
 AA(1) = "りんご":   BB(1) = "すいか"
 AA(2) = "みかん":   BB(2) = "とまと"
 AA(3) = "すいか":   BB(3) = "みかん"
 AA(4) = "すもも":   BB(4) = "なし"
 AA(5) = "かき":    BB(5) = "くり"

 Dim i As Long
 Dim dic As Object
 Set dic = CreateObject("Scripting.Dictionary")
 
 '配列AA() をdicに重複カットして登録
 For i = 1 To UBound(AA)
   dic(AA(i)) = Empty
 Next
 
 'このなかに 配列BB()のメンバがいるか? ひとつづつ調べる
 '結果を入れる3番目の配列 CC()を用意する(要素数はAAと同じ要素数)
 ReDim CC(1 To UBound(AA)) As String
 Dim k As Long
 For i = 1 To UBound(BB)
   If dic.Exists(BB(i)) Then
     k = k + 1
     CC(k) = BB(i)
   End If
 Next
 '結果の配列CC()を実際に利用された要素数kにリサイズする
 ReDim Preserve CC(1 To k)
 
 '確認
 For i = 1 To k
   Debug.Print CC(i)
 Next
End Sub

もっとも、
Excelでは いきなり「配列」があるのではなく、
シートのデータを配列に格納して...処理をする...
ということが多いので、

(シートにデータがなければ、配列内容をシートにコピーして、)

「データ」-[フィルタ]-[フィルタオプションの設定]
で抽出剃る方法もあります。
Dictionaryでやっていることがわからないときは、
こちらのほうが、理解しやすいかも?

0 hits

【66229】他の変数内と同じものを探す 亜矢 10/8/11(水) 7:50 質問
【66232】Re:他の変数内と同じものを探す neptune 10/8/11(水) 14:12 発言
【66233】Re:他の変数内と同じものを探す Yuki 10/8/11(水) 14:35 発言
【66234】Re:他の変数内と同じものを探す kanabun 10/8/11(水) 15:14 発言
【66235】Re:他の変数内と同じものを探す kanabun 10/8/11(水) 15:49 発言
【66238】Re:他の変数内と同じものを探す 亜矢 10/8/11(水) 16:18 お礼
【66239】Re:他の変数内と同じものを探す kanabun 10/8/11(水) 16:46 発言
【66247】Re:他の変数内と同じものを探す 亜矢 10/8/12(木) 5:04 発言
【66248】Re:他の変数内と同じものを探す kanabun 10/8/12(木) 10:01 発言
【66249】Re:他の変数内と同じものを探す 亜矢 10/8/12(木) 11:03 お礼

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