• ベストアンサー

[ユーザー設定リスト]の最大項目数は?

添付図は Excel 2002 の[ユーザー設定リスト]を示しています。 反転部は私が設定したものです。本来は A,B,C,…,Z,AA,AB,AC,…,AZ,BA,BB,BC,…,IS,IT,IU,IV の 256項目を入力したかったのですが、現実は A,B,C,…,Z,AA,AB,AC,…,AZ,BA,BB,BC,…,IS,IT までの 254個までしか入力できません。 果たして、[ユーザー設定リスト]の最大項目数は 254個と決まっているのでしょうか?仕様として「ヘルプ」の何処かにそのことが明記されていますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.4

>それって、何処に書いてありますか? Microsoftの公式文書としては見た事はありません。 『Excel の仕様および制限』 http://office.microsoft.com/ja-jp/excel/HP100738491041.aspx ここにも載っていません。 個人の検証の結果です。 [ユーザー設定リスト]の最大項目数は総文字数によって変動するようです。 1行の文字数が全て1文字の場合、1,000行登録できました。 : 行ごとに『,』の区切り文字がありますので、それを含めて1,999文字までみたいです。 ...なんて感じで置き換えて受け取ってもらったほうがいいかも。

noname#204879
質問者

お礼

返信が遅れました。 》 1行の文字数が全て1文字の場合、1,000行登録できました 有益な情報をありがとうございました。 2010/04/02

その他の回答 (3)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.3

[ユーザー設定リスト]の最大項目数は総文字数によって変動します。 1行の文字数が全て1文字の場合、1,000行です。 4文字×400行。 9文字×200行。 19文字×100行。 99文字×20行。 行ごとに『,』の区切り文字がありますので、それを含めて1,999文字までです。 1行あたりの最大文字数は255文字まで。 (XL97,2000,2003,2007。macは確認してません) 検証してみたい方は下記のようなVBAコードで可能です。 Sub test1()   Const y As Long = 1000 '作成する漢字データの行数   Const x As Long = 4  '1行あたりの文字数   Dim n  As Long   Dim v  As Variant   On Error GoTo errHndlr   With 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     End With     n = UBound(v)     .Range("B1").Resize(n) = Application.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個というのは[リストの項目]のリストボックスの【表示上の制限】です。 実際に登録されている行数とは違います。 Sub test2()   Const y As Long = 500   Dim n  As Long   Dim v  As Variant   On Error GoTo errHndlr   With 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 '後で手動削除してください     End With     n = UBound(v)     .Range("B1").Resize(n).Value = Application.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

noname#204879
質問者

補足

》 [ユーザー設定リスト]の最大項目数は総文字数によって変動します。 》 1行の文字数が全て1文字の場合、1,000行です。 それって、何処に書いてありますか?

回答No.2

とりあえず2004では512以上いきますが、ヘルプの「仕様と制限」 には該当する項目がありませんね。 数式のままではアレなので、「値として貼付け」かなんかでちゃん と文字列にしてから取り込んでみてはどうでしょう。それでダメな ら2002の仕様なのかメモリ依存なのか…

noname#204879
質問者

お礼

[回答番号:No.1]への[お礼]欄にも書きましたが、私の誤解でした。 ありがとうございました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

実際にセルにAからIVまでを入力し(たとえば「=ADDRESS(ROW(A1),COLUMN(A1),4)」と入力し、このデータを「値」に変化してから「1」を置換で削除したデータ)、これをユーザー設定リストに「インポート」すれば問題なくユーザー設定リストに取り込まれます。 具体的にどのような操作で254個までしか設定できないことを確認したのでしょうか?

noname#204879
質問者

お礼

理由は後述しますが、私の誤解でした。仰るとおり「問題なくユーザー設定リストに取り込まれ」ることを確認しました。 》 具体的にどのような操作で254個までしか設定できないことを確認したのでしょうか? 添付図に示した[リスト項目]の窓内の表示です。右側のスクロールバーを下端まで移動したときに「…、IR、IS、IT」と「IT」までしか表示されていないのです。しかし、改めて注意深く見てみると、「IT」の下に2行分が空白であることに気付きました。この現象は私だけなのでしょうか? バージョンは、Excel 2002 (10.6860.6858) SP3 なのですが。 何れにしてもお蔭様で私の“問題”は解決しました。ありがとうございました。