
いつもお世話になっております
下記のコードを実行すると昇順に並び替えることができるのですが、
降順にするにはどうしたらよいのですか。
DataList.Count To 1 逆にしましたがおなじです
また、条件を増やすことは可能でしょうか。
A列は昇順にB列は降順というように
Dim DataList As Object
Dim x, i As Long
Set DataList = CreateObject("System.Collections.SortedList")
x = Range("B2:d10").Value
For i = LBound(x) To UBound(x)
If DataList.Contains(x(i, 1)) = False Then
DataList.Add x(i, 1), x(i, 2)
End If
Next i
For i = 0 To DataList.Count - 1
Cells(i + 2, 5).Value = DataList.GetKey(i)
Cells(i + 2, 6).Value = DataList.GetByIndex(i)
Next i
Set DataList = Nothing

No.1ベストアンサー
- 回答日時:
基本的にキー・値を追加していく毎に内部でキーを基準に並び替えをするので、書き出す際に逆から取り出す以外にはないでしょうね。
要素数を For .Count -1 To 0 Step -1 を用いて。
>また、条件を増やすことは可能でしょうか。
>A列は昇順にB列は降順というように
これが出来てしまうと本来追加していく際の『対のデータ』が無視されるのでダメでしょ。
VBやC#なら可能かもですし、VBAでやるなら一度それぞれを別の配列に入れて目的通り並び替え改めて作成するって無駄な作業になると思いますよ。
いつ有難うございます。
今まで通りSortでやります。
CreateObject("System.Collections.ArrayList")
で検索したら CreateObject("System.Collections.SortedList")
もヒットしたらなぜかこれもいいなと思いました。
ありがとうございました
No.3
- 回答日時:
No.1です。
使う場面ではSortedListも悪くはないですよ。
降順でキーを揃えるならDictionaryオブジェクトとキー値を格納したArrayListを用い、key はDictionaryオブジェクトではなくSortメソッドを2回かけたArrayListから順次取得してDictionaryオブジェクトに与えてItemを得ますね。
No.2
- 回答日時:
こんにちは
カテゴリがVBAなので、エクセルVBAってことでしょうか?
目的的に考えれば、シート上で並び替えをなさりたいのならRange.Sortメソッドを利用する方がはるかに簡単だと思いますけれど・・・?
https://docs.microsoft.com/ja-jp/office/vba/api/ …
昇順・降順、第二キーなどの設定が可能です。
どうしても、System.Collections.SortedListを使わなければならない理由でもあるのなら別ですけれど・・・
有難うございます。
System.Collections.SortedListではなく
System.Collections.ArrayListでサンプルコード
探していました。なぜか、System.Collections.SortedList
ヒットしました。
興味がでてしまい、つかえるのかな と思い
質問してしまいました。
有難うございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
getParameter()について
-
Excel VBA 定数にオブジェクト...
-
エクセルVBA 画像を貼り付ける...
-
サーブレットコンテキストの意...
-
VBAでの[]
-
ADOのOPENで実行時エラー
-
servletからjspへオブジェクト...
-
C++/CLIでの画像情報(RGB)の取得
-
JSPでのArrayListの表示につい...
-
MessageBox.Show(Me,…の「Me」...
-
ピクチャーボックスに点を打つ...
-
System.Collections.SortedList
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
-
変数名の付け方
-
配列のメソッド
-
private static という変数の修飾
-
クラス間でのデータ参照
-
レコード件数の表示
-
C# インスタンスの破棄
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
servletからjspへオブジェクト...
-
サーブレットコンテキストの意...
-
エクセルVBA 画像を貼り付ける...
-
Excel VBA 定数にオブジェクト...
-
VB.netでメソッドからコントロ...
-
VBAでの[]
-
System.Collections.SortedList
-
JSPでのArrayListの表示につい...
-
C#で親にイベントを投げる方法
-
C#のクラスで値渡しをする
-
VB.NETでのnothing の意義について
-
Vba ListViewの行挿入に関して...
-
String型からlong型への変換は...
-
javaで、、、
-
MessageBox.Show(Me,…の「Me」...
-
getParameter()について
-
ピクチャーボックスに点を打つ...
-
VB2005でADDとINSERTの違いは?
-
LiveConnectって?
-
.matchの使用方法
おすすめ情報