• ベストアンサー

リストボックスの全行表示

リストボックスをクリックした時の表示行数は決まっていますよね。これを、例えば20行あれば、クリックしたときに20行全部最初のクリックで表示するようにできますか? #「HTML」のカテゴリーで質問→javascriptならできるかなという助言があったので、こちらで質問させて下さい。 #複数行の表示(size="")のことではありません。 #どうも見えない部分を認識してくれないユーザーさんがあるので、それへの対応です。

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

  • ベストアンサー
noname#518
noname#518
回答No.5

うーん、理解してくれてないみたいですね。^^; では、例としてこのようなケースを考えてください。 リスト(つうか、コンボボックスだな正確には)の件数が100件あります。 これを、あなたの言うクリックで一覧を表示したときに全件表示で開閉する。 100件のデータが並ぶと、いったいどれくらいのHeightが必要ですかね? おそらく、大抵のクライアントの画面領域からはみ出ます。 画面外にはみ出た部分のデータは見えないし、スクロールバーも無い。 一体どのように選択するのでしょうね? わかります? リストを全件表示で開くというのは、I/Fとしては不完全なのです。 ”仮に”できたとしても、意味が無い。

s-holmes
質問者

お礼

回答ありがとうございました。 「画面はみだし」で、ようやく「限界」を理解できました。 #想定しているのが、標準設定よりも少し行が多いだけのものだったのでこれに気がつきませんでした。 #勉強になりました。

その他の回答 (4)

  • KaZtoYou
  • ベストアンサー率73% (11/15)
回答No.4

どうやらプルダウンメニュー(ドロップダウンメニュー)における クリック時の表示域の話みたいですね。 最初にm_catさんがおっしゃってるようにブラウザ依存だったと思います。 どうしてもというならDHTMLを使ってこんな形でやる方法もあります。 http://www.tanasan.com/dhtml/dhtml43.htm しかし、javaAppletやActiveXもそうですがあまり現実的とはいえないかと。 #どうやらユーザー教育した方が早そうです♪ #参考URLは気にしないで下さい・・・・・

参考URL:
http://www.usability.gr.jp/alertbox/20001112.html
  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.3

>どうも見えない部分を認識してくれないユーザーさんがあるので、それへの対応です。 ということは、インターフェースを変更したほうが良いですね。 ラジオボタンやチェックボックスで対応したほうがいいと思います。 そのほうが楽ですし。 JavaScriptでお考えならば参考URLをどうぞ。 非常に役立つサンプル集やリンクが沢山あります。

参考URL:
http://allabout.co.jp/computer/javascript/mbody.htm
  • amania
  • ベストアンサー率22% (2/9)
回答No.2

リストボックスの見えていないところも全て選択するということですよね? リストボックスの全てのOpstionsのselectedにtrueを 設定してあげれば、全部選択状態になりますよ。 (リストボックスは、複数選択可にしないとダメですよ:<select .... multiple>です ) 件数は、リストボックスのLengthでわかります。 ただ仕様自体がわからないので、断定できませんが、 クリックした時に全て選択はまずいのではないでしょうか?(全て以外の選択ができないでしょう) 初期表示の時などに、全て選択しておいて、必要のないものを解除していくというのが妥当のように思います。

s-holmes
質問者

補足

回答ありがとうございます。 すみません、「選択」ではなく見えないところも全部表示というのが希望です。 #クリック→全部見える(20行でも)。 #multipleではなく。

noname#518
noname#518
回答No.1

HTML+JavaScriptの範疇ではできません。 #ブラウザの仕様に依存です。 JavaAppletや、ActiveXを使って、自分で作れば可能ですけどね。^^;

関連するQ&A

  • 複数行表示されたリストボックスから最後の行だけ削除するには

    エクセルのユーザーフォーム上にあるリストボックスですが 必要に応じてボタンクリックでAddItemにより項目が追加されて行くリストボックスがあります この複数行表示された項目の内 別のボタンクリックで最後に追加された行だけ削除していくには どのように記述すればいいのでしょうか ------------- abcde fghij klmno pqrst ------------ と表示されていたリストボックスから クリックするたびに ------------- abcde fghij klmno ------------- ------------- abcde fghij ------------- の様に最後の行だけ削除をしたいのです 単純に ListBoX1.Clear では全て消されてしまい こまっています ぜひお力をお貸し下さい よろしくお願いします

  • HTML の リストボックス の件

    HTML で <select></select> を使って リストボクスを表示できますが、 初めから開いているリストボックス(size=n)ではない 一行のリストボックスで、開いたときの行数を指定できるのか わかる方、お願いします HTML のみでなくても、javascript 使用でもかまいません

  • リストボックスの行数表示のこと

    リストボックスの行数表示のことですが、クリックした時に、その中の全行数分を一気に表示するにはどのようにしたらよいですか。 #これが今まで使ったことなし。

    • ベストアンサー
    • HTML
  • VBとリストボックス

    こんにちわ。 いまVB6.0sp5でリストボックスに チェックボックス付きのリストを表示し, クリックで複数選択するロジックを組んでいます。 リストに表示するデータ件数がリストボックスの高さを超えるため, 横スクロールさせる必要があります。 そこで,2列目のキャプションをクリックすると, スクロールし,選択した行以外のチェックボックスが見た目, 消えてしまいます。 なお消えたチェックボックスの箇所をクリックすると, その行のチェックボックスが選択された状態で表示されます。 2列目のキャプションをクリックしたときに,ほかの行のチェックボックスを 消さないようにしたいのですが, どうすれば良いでしょうか? 教えてください。 宜しくお願いします。

  • ExcelVBAでユーザーフォーム内のリストボックスの設定について

     教えてください、ExcelVBAでユーザーフォーム内にリストボックスを作りました。 複数列・複数行のワークシートデータを参照する設定です。  列は12列で、一番左の列に番号をふってあります。  行は31行で、一行目がタイトル表示してあります。  質問なのですが、このリストボックスは全列・全行表示する大きさでユーザーフォーム内に作成してあるのですが、いざマクロを動かすと幅は問題ないんですが、高さが縮んで自動的にスクロールが表示されます。  ユーザーフォームを大きくしてリストボックスも大きくしてやっても同じです。 このリストボックスの高さを固定させる設定はどうすれば良いでしょうか。

  • リストボックスで任意の行を表示するには?

    vbで多量の行数情報が入ったリストボックスがあります。 垂直スクロールバーを、直接操作しないで、vbより任意の行を表示させたいと思っています。 よいメソッド・関数などをご存知の方、ご教授を宜しくお願い致します。 os:windows2000pro vb:vb6

  • リストボックス内の表示

    エクセル2000VBAです。 ユーザーフォームのリストボックスに複数列(No,日付,氏名,金額,摘要)のデータを表示させています。 リストボックス内で、日付が“1/2/2004”と表示され, 金額には千円単位の“,”表示されません。 この日付を“2004/2/1”と表示させ、金額に“,”を表示させる方法はないでしょうか?

  • [Access2003]コンボボックスのプロパティの「リスト行数:8」について

    昨日、リスト行数について分からなくて質問しました。アドレスは、http://okwave.jp/qa4858817.htmlです。リスト行数が8以下だとそのまま表示されるということは、理解できました。 質問1:http://okwave.jp/qa4858817.htmlで質問したことなんですが、参考書(下記のコンボボックスは、著作権の関係もあり、商品名の名前は変えてあります)を見たら・・・・ コンボボックス: A みかん B メロン C パイナップル D なし 回答してくださった方のアドバイスを見ると、【リスト行数が8以下だとそのまま表示される】のであれば、上記の場合、「リスト行数:4」ではないかなと思いました。参考書の「リスト行数:8」が間違っていて、「リスト行数:4」が正解かなと思いましたが、この場合、4が正しいのでしょうか? 質問2:回答してくださった方のアドバイスを見ると、「リスト行数:8」と表示される場合、8行のみが表示され、超える部分はスクロールすると教えてくださいました。(パソコン教室では、Access2003の勉強をしていますが、家庭の事情により、Access2003のソフトは、持っていないのでよく分からないです。) たぶんですが、リスト行数が8行以上の場合は、コンボボックスの横にスクロールバーが表示されてスクロールバーを使用して、リストを移動させながら関係ある商品名などを選択して入力するというイメージがあるのですが…..。 「リスト行数:8」と表示される場合、8行のみが表示され、超える部分はスクロールするということについて具体的に教えてもらえないでしょうか?

  • テキストボックスの内容(複数行)をリストへ

    テキストボックスの内容(複数行)をリストボックスへ1行表示にするにはどうすれば良いのでしょうか? replaceにてvbcrlf(改行文字?)を置き換えしようとしても無理でした。 ご教授お願いします。

  • リストボックスについてです。

    リストボックスについてです。 B列をダブルクリックするとリストボックスが立ち上がり、データを選択してB列に表示できるように設定されていますが、困った現象が起こっています。 例えば、sheet1のB10にダブルクリックでリストボックスを表示し、そこから「あいうえお」という名前を表示させて、sheer1編集が終わったとします。 次のsheet2でB1をダブルクリックしているのに、sheet2のB10に勝手に「あいうえお」と表示されてしまいます。 コードは以下になってます。 VBA初心者なのでエクセルのサイト等からコピペ等して作ったコードです。 どこかおかしな箇所があると思うのですが、何処がおかしいのかがわかりません。 お分かりになる方、教えていただければ助かります。 ' ◆Worksheetのコード◆ '---------------------------------------------------- '選択範囲を変更したときに実行される Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) UserForm1.ListBox1.RowSource = "データ!A1:A100"  '表示するデータ範囲 UserForm1.ListBox1.Font.Size = 12    'フォントサイズ If Target.Column = 2 Then 'B列なら 行 = Target.Row '行番号を取得する UserForm1.Show 'ユーザーフォームを表示する End If End Sub '=================================================================================== ' ◆UserForm1のコード◆ '-------------------------------------------------------------------------- Private Sub ListBox1_Click() 'クリックされたときに実行される If 行 <> 1 Then '1行目でなければ Cells(行, 2) = ListBox1.Value 'リストボックスの値をセルにセットする End If UserForm1.Hide 'ユーザーフォームを非表示にする End Sub Private Sub UserForm_Deactivate() '非アクティブになったときに実行される Unload Me 'ユーザーフォームをメモリから削除する End Sub '========================================================================================= '============================== ' ◆標準モジュールのコード◆ Option Explicit Public 行 As Variant '行番号 Sub auto_open() Load UserForm1 'ユーザーフォームをメモリに読み込む End Sub '==============================

専門家に質問してみよう