プロが教える店舗&オフィスのセキュリティ対策術

Formに貼り付けている ComboBox1 へ
シート(Date_Base)のリストを 降順で表示したいのですが
どのように コードを書けばいいのでしょうか?

A 回答 (3件)

#2の訂正



もし、Form が、Excel VBA の UserForm を指すのでしたら、

Sub EnterData2Combo()
   ↓
Private Sub UserForm_Initialize()

に変えてください。
    • good
    • 0

こんにちは。



最初に、正しく、Set rng = Range(....) の部分を設定してください。

シート・モジュール

Sub EnterData2Combo()
Dim Ar() As Variant
Dim rng As Range
Dim i As Long
Set rng = Range("A1:A10")
 ReDim Ar(rng.Rows.Count - 1)
 For i = 0 To rng.Rows.Count - 1
  Ar(i) = rng.Cells(i + 1).Value
 Next i
 Babble_Sort Ar()
 Me.ComboBox1.List = Ar()
End Sub
Sub Babble_Sort(ByRef Ar())
 Dim u As Long
 Dim i As Long
 Dim j As Long
 Dim t As Variant
 u = UBound(Ar())
 i = LBound(Ar())
 Do While i < u
  j = u
  Do While j > i
   If Ar(j) > Ar(i) Then '降順
    t = Ar(j)
    Ar(j) = Ar(i)
    Ar(i) = t
   End If
   j = j - 1
  Loop
  i = i + 1
 Loop
End Sub
    • good
    • 2
この回答へのお礼

Wendy02 さん どうも有難うございました
遅くなりました。しばらく入院していまして 確認する事が出来ませんでした。
退院後早々と 確認してみます。

お礼日時:2007/10/09 10:13

こんにちは。



エクセルでのVBAでのリストボックスやコンボボックスに対しSort(Sortedプロパティ)が無いのでコントロール内での設定では出来ません。
また、VBではSortedでのソートは昇順になります。よって降順での最も簡易な方法はシート上でソートをVBAにて行い、その後AddItemにてコントロールに乗せる事が最も簡単です。
コードはマクロの記録など用いると簡単に出来ると思いますので、頑張って下さい。
    • good
    • 0
この回答へのお礼

WWolf さん 有難うございます
マクロの記録を用いて 行います。
最近VBAを夢中で勉強してます。
凄く奥深くて 感動です。 

お礼日時:2007/09/10 17:20

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A