(知っててもあまり役に立ちそうもない情報2:-)
CustomList...[ツール]-[オプション]-[ユーザー設定リスト]の事です。
ユーザーオリジナルなリストを作成し、並び替えや連続データを作成したりする時に使ったりします。
この、リスト1つあたりに登録できる件数(行数)は何件までか。
『Excel の仕様および制限』
ここには記載が無いようなので、以前、調べてみた事があります。
1行の文字数1文字の場合、1,000行登録できました。
5文字×333行。
10文字×181行。
20文字× 95行。
100文字× 19行。
総文字数によって変動します。行ごとに『,』の区切り文字がありますので、それを含めて2,000文字までのようです。(Excel2000)
検証してみたい方は下記のようなコードで。
(結果)
ちなみに[リストの項目]のリストボックスにも表示制限があり、こちらは254行まで。これはあくまで表示上の制限なので、実際に登録されている行数とは違います。
(400行登録されているが表示は254行)
余談ですが、表示上の制限は他にもあるようですね。
CollectionやDictionaryなどのObjectのItem数に関しても、[ローカルウィンドウ/ウォッチウィンドウ]の表示は256件まで?
また、[ユーザー設定リスト]に登録できるリスト数は最大何件か?
...についてはあまり検証しないほうが良いようです。
1回試してみた時は1,700件くらいでしたが、[ユーザー設定リスト]はレジストリに保存されるので、レジストリサイズが影響してくるのではないでしょうか。
『[XL2000] ユーザー設定リストを共有する方法』
(2010.04.22追記)
>総文字数によって変動します。行ごとに『,』の区切り文字がありますので、それを含めて2,000文字までのようです。
正確には1,999文字まで ?
CustomList...[ツール]-[オプション]-[ユーザー設定リスト]の事です。
ユーザーオリジナルなリストを作成し、並び替えや連続データを作成したりする時に使ったりします。
この、リスト1つあたりに登録できる件数(行数)は何件までか。
『Excel の仕様および制限』
ここには記載が無いようなので、以前、調べてみた事があります。
1行の文字数1文字の場合、1,000行登録できました。
5文字×333行。
10文字×181行。
20文字× 95行。
100文字× 19行。
総文字数によって変動します。行ごとに『,』の区切り文字がありますので、それを含めて2,000文字までのようです。(Excel2000)
検証してみたい方は下記のようなコードで。
Private Sub test1() Const y As Long = 1000 '作成する漢字データの行数 Const x As Long = 4 '1行あたりの文字数 Dim v As Variant Dim n As Long On Error GoTo errHndlr Sheets.Add With Range("A1").Resize(y) 'ユニークな漢字データをCHAR関数で設定 .Formula = "=REPT(CHAR(ROW(A12321)+INT((ROW(A1)-1)/94)*162)," & x & ")" .Value = .Value 'CustomList登録 Application.AddCustomList ListArray:=.Cells End With With Application v = .GetCustomListContents(.CustomListCount) '登録したCustomList削除 .DeleteCustomList ListNum:=.CustomListCount n = UBound(v) Range("B1").Resize(n) = .Transpose(v) Range("C1:D1").Value = Array("データ行数", "登録できた行数") Range("C2:D2").Value = Array(y, n) End With errHndlr: With Err If .Number <> 0 Then MsgBox .Number & ":" & .Description End With End Sub
(結果)
ちなみに[リストの項目]のリストボックスにも表示制限があり、こちらは254行まで。これはあくまで表示上の制限なので、実際に登録されている行数とは違います。
Private Sub test2() Const y As Long = 500 Dim v As Variant Dim n As Long On Error GoTo errHndlr Sheets.Add With Range("A1").Resize(y) .Formula = "=TEXT(ROW(),""0000"")" .Resize(, 2).NumberFormat = "@" .Value = .Value Application.AddCustomList ListArray:=.Cells End With With Application v = .GetCustomListContents(.CustomListCount) '.DeleteCustomList ListNum:=.CustomListCount '後で手動削除必要 n = UBound(v) Range("B1").Resize(n) = .Transpose(v) Range("C1:D1").Value = Array("データ行数", "登録できた行数") Range("C2:D2").Value = Array(y, n) End With errHndlr: With Err If .Number <> 0 Then MsgBox .Number & ":" & .Description End With End Sub
(400行登録されているが表示は254行)
余談ですが、表示上の制限は他にもあるようですね。
CollectionやDictionaryなどのObjectのItem数に関しても、[ローカルウィンドウ/ウォッチウィンドウ]の表示は256件まで?
Private Sub test3() Dim i As Long Dim c As Collection Set c = New Collection For i = 1 To 257 c.Add i Next Stop 'ここでウォッチ Debug.Print c.Item(257) Set c = Nothing End Sub
また、[ユーザー設定リスト]に登録できるリスト数は最大何件か?
...についてはあまり検証しないほうが良いようです。
1回試してみた時は1,700件くらいでしたが、[ユーザー設定リスト]はレジストリに保存されるので、レジストリサイズが影響してくるのではないでしょうか。
『[XL2000] ユーザー設定リストを共有する方法』
(2010.04.22追記)
>総文字数によって変動します。行ごとに『,』の区切り文字がありますので、それを含めて2,000文字までのようです。
正確には1,999文字まで ?