Excel VBA質問箱 IV

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

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


15970 / 76734 ←次へ | 前へ→

【66238】Re:他の変数内と同じものを探す
お礼  亜矢  - 10/8/11(水) 16:18 -

引用なし
パスワード
   ▼kanabun さん:
>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でやっていることがわからないときは、
> こちらのほうが、理解しやすいかも?
ありがとうございました。内容は理解しました。うまいコマンドがあって
簡単に串刺し的に検索ができるかなと期待していました。
 Existsメソッドは配列内に存在していたときにはtrueを返すということですね。
 結局は1ヶづつ検索することになるということですね。
1 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 お礼

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