2001.12.27
※ちょっと今度実験し直ししてみるか。Excel2000くらいの情報。
コンボボックスやリストボックスにデータを表示する場合、データを一件ずつ追加していくことがあるが、件数が多いとどうしても遅くなる。
代替手段として2つある。
一つ目。.RowSource プロパティにワークシート上のデータ領域を設定する方法。
これはワークシート上に行削除や行挿入が行われるとリンクが外れるので、都道府県などめったなことで変動がない情報に向く。
二つ目。.List プロパティにRedimで割り当てた配列を設定する方法。.Column プロパティにも設定はできるが、実務上は .Listだろう。
一次元、つまり Redim (n) の定義のものであれば一列の選択項目が m 行作られる。
二次元、つまり Redim (n, m) の定義のものであればn列分の項目を持ったリストが m 行作られる。
試していないが、Redim (n) の定義した Type の項目は、Typeの項目数だけ列を持ったリストが n 列分作られるかと思う。逆の場合は .Column を使うことで逃げられるかも。ただ、.Columnを使うときは .ColumnCount を大きくとる必要があることに注意。