[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『リストボックスの複数列の制限は?』(ヒロ)
いつもお世話になっております。 リストボックスに、順番がばらばらのデータを、AddItemでセットしたいのですが、 11項目以上はセットできないのでしょうか? 今使っているPCにヘルプファイルがなく、検索不可能の為、 ご存知の方がいましたら教えてください。
With me.ListBox1 .AddItem .List(k, 0) = 項目1 .List(k, 1) = 項目2 .List(k, 2) = 項目3 .List(k, 3) = 項目4 .List(k, 4) = 項目5 .List(k, 5) = 項目6 .List(k, 6) = 項目7 .List(k, 7) = 項目8 .List(k, 8) = 項目9 .List(k, 9) = 項目10 .List(k, 10) = 項目11 End With
実行すると、List(k,10)のところで、Listプロパティを設定できませんとでます。 やはり、0〜9までということでしょうか?
.ColumnCount =11 とでも予め設定しておけばいいような気がするのですが、ダメですか?
(半平太)
ただいま帰りました。 みなさんありがとうございます。 やはり、AddItemでは無理なようですね・・・・><
すみません、RowSourceの使い方がいまいち解ってなく、 また、深く考えたことがなかったのですが、範囲指定以外の使い方も出来るのでしょうか・・・
With me.ListBox1 .RowSource = "データ!A2:C" & Data_end End With
こんな感じで使えばいいのかなっていうくらいしか解りません。
やりたいことは
項目A 項目1 項目B 項目2 項目C 項目3・・・・ 1 2 3
というデータがあって、表示させたいのは項目1・項目2・項目3・・・・です。 データの並べ順は、そのままで使いたいのですが、 どのように、設定したらよいのでしょうか・・・ 宜しくお願いします。
こんな感じでいけますか。 Private Sub UserForm_Initialize() Dim i As Long Dim MyArray(1, 11) ListBox1.ColumnCount = 12 For i = 0 To 11 MyArray(0, i) = Cells(1, i * 2 + 1) MyArray(1, i) = Cells(2, i * 2 + 1) Next i ListBox1.List() = MyArray End Sub
行範囲の配列は修正してください。
(川野鮎太郎)
なるほど、こういうやり方があるのですね。
でも・・・ColumnCountで設定できるのだから、 Listも対応していればいいのに残念ですね^^;
皆さんありがとうございました。
> With me.ListBox1 > .RowSource = "データ!A2:C" & Data_end > End With ですよね?
Private Sub UserForm_Initialize() Dim ws As Worksheet Set ws = Sheets("データ") With ListBox1 .ColumnCount = 3 '<- 12 ? .List = ws.Range("a2", ws.Range("a" & Rows.Count).End(xlUp)).Resize(,3).Value '↑12? End With Set ws = Nothing End Sub (seiya)
項目1 項目2 項目3 項目4 項目5 項目6 項目7 項目8 1 2 3 4 5
Sheet1 にこんなデータがあるとします。
Private Sub UserForm_Initialize()
Dim 最終行 As Integer
最終行 = Range("A65536").End(xlUP).Row '最終行を取得
ActiveWorkbook.NameS.Add Name:="項目", RefersToR1C1"=Sheet1!R1C1:R" & _ 最終行 & "12" ListBox1.RowSource = "項目" ↑ End Sub 列数
こんな感じでどうですか? (ブッチャ)
>でも・・・ColumnCountで設定できるのだから、 >Listも対応していればいいのに残念ですね^^; ちょっと意味が解りませんけど。 BJ
こういう方法もあります。 最初に入れ物を作るから、追加はできません。 追加時は、新規に全部作り直す事になります。
Private Sub CommandButton1_Click() For i = 1 To ListBox1.ListCount For ii = 1 To ListBox1.ColumnCount cnt = cnt + 1 ListBox1.List(i - 1, ii - 1) = cnt Next Next End Sub
Private Sub CommandButton2_Click() ListBox1.ColumnCount = 5 End Sub
Private Sub CommandButton3_Click() ListBox1.ColumnCount = 15 End Sub
Private Sub UserForm_Initialize() Dim 入れ物() As String 'ColumnCountは、見せる列数です。 ListBox1.ColumnCount = 15 '最初に設定する事。 ReDim 入れ物(1 To 10, 1 To 15) ListBox1.List = 入れ物 For i = 1 To 15 st = st & ";" & 30 Next ListBox1.ColumnWidths = Mid(st, 2) Erase 入れ物 End Sub
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.