アプリ版:「スタンプのみでお礼する」機能のリリースについて

添付図は 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個と決まっているのでしょうか?仕様として「ヘルプ」の何処かにそのことが明記されていますか?

「[ユーザー設定リスト]の最大項目数は?」の質問画像

A 回答 (4件)

>それって、何処に書いてありますか?


Microsoftの公式文書としては見た事はありません。
『Excel の仕様および制限』
http://office.microsoft.com/ja-jp/excel/HP100738 …
ここにも載っていません。
個人の検証の結果です。

[ユーザー設定リスト]の最大項目数は総文字数によって変動するようです。
1行の文字数が全て1文字の場合、1,000行登録できました。

行ごとに『,』の区切り文字がありますので、それを含めて1,999文字までみたいです。

...なんて感じで置き換えて受け取ってもらったほうがいいかも。
    • good
    • 0
この回答へのお礼

返信が遅れました。

》 1行の文字数が全て1文字の場合、1,000行登録できました

有益な情報をありがとうございました。

2010/04/02

お礼日時:2010/05/02 18:02

[ユーザー設定リスト]の最大項目数は総文字数によって変動します。


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

この回答への補足

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

それって、何処に書いてありますか?

補足日時:2010/04/20 11:46
    • good
    • 0

とりあえず2004では512以上いきますが、ヘルプの「仕様と制限」


には該当する項目がありませんね。

数式のままではアレなので、「値として貼付け」かなんかでちゃん
と文字列にしてから取り込んでみてはどうでしょう。それでダメな
ら2002の仕様なのかメモリ依存なのか…
「[ユーザー設定リスト]の最大項目数は?」の回答画像2
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/04/20 12:05

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



具体的にどのような操作で254個までしか設定できないことを確認したのでしょうか?
    • good
    • 0
この回答へのお礼

理由は後述しますが、私の誤解でした。仰るとおり「問題なくユーザー設定リストに取り込まれ」ることを確認しました。

》 具体的にどのような操作で254個までしか設定できないことを確認したのでしょうか?

添付図に示した[リスト項目]の窓内の表示です。右側のスクロールバーを下端まで移動したときに「…、IR、IS、IT」と「IT」までしか表示されていないのです。しかし、改めて注意深く見てみると、「IT」の下に2行分が空白であることに気付きました。この現象は私だけなのでしょうか?
バージョンは、Excel 2002 (10.6860.6858) SP3 なのですが。

何れにしてもお蔭様で私の“問題”は解決しました。ありがとうございました。

お礼日時:2010/04/20 12:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!