• 締切済み

リストボックス内を昇順並べる方法

リストボックス内で、Columns Countを7に設定しています。 それで、左から2つめの項目を昇順に並べたいのですが、何か良い方法を知っておられる方は、教えて下さい。 宜しくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

設定とかでは、良い方法は無いと思います。 (1)ListfillRangeを使っているなら、そのセル範囲内でエクセルVBAでソート。 ただしMultiColumnは無理でしょうが。 (2)データソースをAddItemする前にアイテムをソート。 ソートは、自作となろう。 (3)ソートを指示・設定できる、別のコントロールを導入する。 アクセスのようにdataSourceにSQL文を書くことができて、ORDER BYが書けると良いが、そういう仕組みはないです。

vivix
質問者

お礼

解決しました。 ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 前回の私の回答のときに、私の補足要求を、そのまましてしまったというか、分からなくなってしまったようですから、私としては、ご質問者さんは、技術的には、まだ力不足のような気がします。 「Columns Countを7に設定」というのは、ColumnCount を7にしているということだと思います。かなり無理な状態をされているようです。本来は、それは、SpreadSheet コントロール(その他のコントロールの中にあります。Microsoft Office SpreadSheet)を使ったほうがよいと思います。ワンクリックで、並べ替えられます。レイアウトは、プロパティで、ListBox のように換えられます。 例: Private Sub UserForm_Initialize()  Spreadsheet1.Range("A1:G12").Value = ActiveSheet.Range("A1:G12").Value End Sub しかし、もし、シートを参照しているのでしたら、シートの並べ替えをしてから、再度、その範囲をRowSource として、再設定すればよいのではありませんか?

vivix
質問者

お礼

回答ありがとうございました。 VBAは今年の9月から仕事の都合で始めたばっかりで、まだ何も分かっておりません。 不快な質問や対応をしていたようなので、すみませんでした。 ただ、こちらも必死で勉強をしております。 今回は、他のシートで抽出を行った後に、そのシートで並べ替えをして、リストボックスに表示するようにしました。 また、何か分からない事がありましたら助けて下さい。 ありがとうございました。

  • yossy0426
  • ベストアンサー率24% (32/130)
回答No.1

どうもです。 ソフトは何でしょうか? 後ヴァージョンも解かれば回答がつき易いと思います。

vivix
質問者

補足

ソフトはExcel2000です。 バージョンとは、何でしょうか? 初心者なのですみません。 VBAです。 宜しくお願いします。

関連するQ&A