Excel VBA > VBA:実務活用 > Listboxに10列以上を追加するとき
このエントリーをはてなブックマークに追加

Listboxに10列以上を追加するとき

ListboxのColumnCountで10以上設定してもダメ?

Listboxに10列以上のデータを追加したい場合、エディタの画面で10以上を指定しても、エラーにならず単純にデータが表示されません。
しかし実際の作業では10列以上はザラだったりします。そんな時にRowsourceでシートを直接参照をする方法もありますが、ここでは配列変数を使った方法を紹介します。
リストボックスに100列を表示したところ

リストボックスに100列を表示したところ

配列にするとリストボックスに10列以上表示できる

ここで紹介する方法は2次元の配列にしてリストボックスにデータを表示する方法です。
Rowsourceでシートからの直接という方法より、配列変数を使った方がプログラム的でこちらの方が扱いやすいように思いますが、皆さんはいかがでしょうか?

Private Sub CommandButton1_Click()

    Dim 列 As Integer
    Dim 行列(1 To 1, 1 To 100) As Variant

    ‘———————————-
    ‘配列(列と行)に値を入れる
    ‘———————————-
    For 列 = 1 To 100
        行列(1, 列) = 列 & “列”
    Next 列

    ‘———————————-
    ‘リストボックスにデータを入れる
    ‘———————————-
    With Me.ListBox1
        .ColumnCount = 100
        .List = 行列
    End With

End Sub

コマンドボタンをクリックすると100列分までデータが入っていると思います。

AddItemも使える

この方法は、常時配列でデータのやり取りをしなくても、一度行うと後は通常のAdditemが使えます。

    ‘———————————-
    ‘リストボックスにデータを追加
    ‘———————————-
    Me.ListBox1.AddItem “A”

listbox_list_columnCount_02

今回のような事象に当たった場合は、ちょっとスマートではないですが、最初に必要な列数を用意した配列をリストボックスに入れておくという方法で回避できますね。

カテゴリ:VBA:実務活用