重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VB6で約3000のデータをListBoxに入れて有ります。
ListBox1=ファイル名
ListBox2=ファイルアドレス
と2つに分けてListBoxに入れて有り、このインデックス値は双方常に一緒でなければなりません。
ここで困ってしまったのが、Sortedはどうすれば良いのか?です。
片方ソートでも両方ソートでも順番(インデックス値)がばらばらになってしまいます。
そこで下記方法でListBoxを更に3つ追加して(1つをSorted)1つ1つソートしたインデックス順に並び替えたらソートに時間がかかってしまいました。
何か良い方法は無いでしょうか?
(ListViewは経験が無いためこの方法の場合はやり方又は参考サイトを入れて頂けると助かります)

Dim i As Integer
Dim j As Integer
Dim k As Integer

k = LI1.ListCount - 1
For i = 0 To k
LI3.AddItem LI1.List(i)
LI4.AddItem LI2.List(i)
LI5.AddItem LI1.List(i) 'SortedのListBox
Next i
LI1.Clear
LI2.Clear
For i = 0 To k
For j = 0 To k
If LI3.List(j) = LI5.List(i) Then
LI1.AddItem LI3.List(j)
LI2.AddItem LI4.List(j)
Exit For
End If
Next j
Next i
LI3.Clear
LI4.Clear
LI5.Clear
'(LI = ListBox)

A 回答 (1件)

MSFlexGridを非表示で持たせ、


そこで列ソートをかけてはどうですか?
    • good
    • 0
この回答へのお礼

回答有難う御座いました。
>MSFlexGrid
これも未経験でしたがなんとか下記の様に出来ました。
ソートが前回より遥かに早い・・・
今後はこれを利用していきたいと思います。

Dim i As Integer
With MFG1
.Rows = LI1.ListCount
.Cols = 2
.FixedRows = 0
.FixedCols = 0
For i = 0 To LI1.ListCount - 1
.Col = 0
.Row = i
.Text = LI1.List(i)
.Col = 1
.Row = i
.Text = LI2.List(i)
Next i
.Col = 0
.Sort = 1
LI1.Clear
LI2.Clear
For i = 0 To .Rows - 1
.Col = 0
.Row = i
LI1.AddItem .Text
.Col = 1
.Row = i
LI2.AddItem .Text
Next i
End With

お礼日時:2010/03/09 16:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!