• ベストアンサー

Excell でListBox の使い方を知りたい

Excel 2010 の VBA でListBox や ComboBox に一覧表示される項目を ListFillRange プロパティ で設定できるとの記事を読みましたが、具体的な使い方が分りません。 また、Help で ListFillRange を検索しても表示されません。 ListFillRange の使い方、および Help での探し方を教えてください。

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

  • ベストアンサー
  • CC_T
  • ベストアンサー率47% (1038/2201)
回答No.2

開発タブの「挿入」をクリックするとコントロールの一覧が表示されますが、ここにはフォームコントロールとActiveXコントロールの2種類がありますね。 ListFillRangeはActiveXの方のリストボックスやコンボボックスの機能に含まれているようです。 ActiveXの機能なので、Excelのヘルプには出ないのでしょうかね。 デザインモードで対象のActiveXのボックスを選び、プロパティーを表示すると、項目の一つにListFillRangeがあります。 ここに A1:A10 などリストの範囲を入力してやると、指定範囲が選択肢として表示されるようになります。 ActiveXはエクセル本体とは別個の機能で、エクセル上の「マクロの記録」使っても変更内容を取り込んでくれないところを見ると、Vマクロからの指定はできないようですね(確か、マクロからActiveX機能を呼べたはずだから、私が知らないだけで指定方法があるのかも知れませんが)。 私も知りませんでしたが、ま、使うこともないかな(^^;

参考URL:
http://office.microsoft.com/ja-jp/excel-help/HP010236681.aspx#BMadd_or_edit_a_combo_box_(control_tool
Agusuke
質問者

補足

CCT さん、回答有難うございます。KURUMITO さんへの補足説明に記しましたが、「Help に表示されない」の表現は不適切でした。 Help 画面には、ControlFormat や OLEObject など私が理解できない用語があり、結果的に理解ができなかったと云うのが正しい表現です。 また、フォームコントロールとActiveXコントロール の違いも理解できていません。 頂いた回答を見て、初めて ListFillRange プロパティーが有ることに気が付きました。これを見ると、 OLEObject を使わなくても、Excel の機能としてこのプロパティーを使うことで、設定が可能ではないかと思い、試したところ確かに目的が実現できました。 もし可能であれば、ActiveX の学習方法をご教示ください。

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

「開発」タブから「Visual Basic」をクリックしてからF1キーを押します。 表示の画面でListFillRangeを検索窓に入力して検索することで使え方が表示されます。

Agusuke
質問者

補足

ご指摘の通りなのですが、 ControlFormat や OLEObject などの表示があり、これらの意味が全く分からず、Help 画面で表示が無いと云うような表現になってしまいました。

  • oct1290
  • ベストアンサー率35% (75/213)
回答No.1

できるとの記事を読みましたが、具体的な使い方が分りません。 とありますが、具体的に何がしたいかわかりません?? 『ListFillRange』と検索窓にいれネットで検索すると無数にその使い方などあります

Agusuke
質問者

補足

oct1290 さん、回答に感謝します。ネットで検索できるとは、思ってもいませんでした。私が不勉強でした。

関連するQ&A

  • ExcelでListBoxを閉じるには?

    Excelにリストボックスを作成します。 そして、特定のセルの値が変更されたら、入力候補をリストボックスに表示する。 リストボックスの項目をダブルクリックまたはEnterキーを入力したら、 リストボックスを非表示にする。 (要は、オートコンプリートなんですが、入力候補は別シートの値を表示したい) ということをしたいのです。 が、VBAで Private sub ListBox1_KeyDown(...) ListBox1.Visible = false end sub とやってしまうと、excelがアプリケーションエラーで死んでしまいます。 どのようにすればよいのでしょうか? よろしくお願いします。

  • ListBoxの最大表示項目数について

    お世話になります。 vbaのフォーム上にListBoxを配置し、ColumnCountを13と定義しましたが、 ColumnHeadsをTrueにし、項目数を見てみると10項目しか表示されません。 実際に実行してみて、仮の値を設定してみても、10項目しか表示されません。 Webで検索してみましたが、「255文字の上限では」と似たような質問の回答を確認しましたが、 13項目の値を全て足しても200文字に届きません。 11項目以上は表示できないのでしょうか。 環境はExcel2000,2002で確認をいたしました。 原因をご存知の方、ご教授下さいますようよろしくお願いいたします。

  • ListBoxで大文字と小文字

    ListBoxで大文字と小文字 こんにちは。 C#+.NetFrameworkです。 ListBoxなのですが、アイテムを更新する際に、元の内容と大文字と小文字だけが異なる文字を設定した場合に、表示が変わってくれません。 たとえば、listBox1の最初の項目にabcと設定されていた場合に、 listBox1.Items[0]="ABC"; としても、画面表示がabcのままなのです。 実際のデータは書き換わっていて、データを取り出してみると、ABCが入っています。 表示もABCになってほしいのですが、方法はあるのでしょうか?

  • リストボックスの列見出し(ExcelのVBA)

     ExcelのVBAでのリストボックスコントロールについての質問です。  リストボックスの列見出しを作りたいのですが、なかなか上手く行きません。リストボックスに項目を設定するのはExcelのシートから… ----- WorkSheets("Sheet1").ListBox1.ListFillRange = "A1:B2"  ↑(Sheet1のA1:B2のデータをListBox1に追加する場合)↑ ----- のようにするのではなく… ----- Dim MyList(1,1) ~~~(MyList配列にデータを代入) Userform1.ListBox1.Column = Mylist() -----  というように、コードから項目を追加しています。  そこで、列見出しを追加したいと思ったのですが… ----- ListBox1.ColumnHeads = True ----- と記述しても、列見出しは真っ白で、その下に項目が表示されるだけです。  列見出し専用の配列を用意しなければならないというような事はあるのでしょうか?  もしあれば、どのように定義すればよいのでしょうか。  ちなみに、用いているExcelの環境は『Microsoft Excel 2004 for Mac (11.5.6)』、VBAの環境は『Microsoft Visual Basic (11.5)』です。  我流で覚えてきたような知識ですので、とても常識的な事を聞いているかもしれないですが、回答宜しくお願いします。

  • ListBoxを数字Keyで選択したい

    お世話になります。 OSはWin XP Home、Excel2002を使用しています。 EXCELのsheet1にCommandButton1とListBox1を貼り付けて以下のようにコーディングしています。 'Listbox1表示 Private Sub CommandButton1_Click() ListBox1.Visible = True End Sub '使用者はリストボックスのダブルクリックでリストボックスの入力ができる。 Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) ListBoxDataSet End Sub '使用者はリストボックスでマウスで選択後EnterKeyで入力ができる。 Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = vbKeyReturn Then ListBoxDataSet KeyAscii = 0 '←これがないとなぜかEXCELが異常終了するので注意! End If End Sub 'リストボックスで選択したリストを、シートの選択セル(単一)に転記し、 'その後でリストボックスを非表示 Sub ListBoxDataSet() ActiveCell.Value = ListBox1.Text ListBox1.Visible = False End Sub さらにListBox1のプロパティのListFillRangeはA1:B100としており、A列は1から100の連番、B列は上から順に「中山」、「常盤」、「高島」・・・98番目には「吉岡」という名前があります。 現在A列の数字は表示以外の機能は持っておらず、ダブルクリックか、マウスで1クリックで項目選択をした後にEnterKeyで名前だけがActivecellに転記されるようになっています。 100件もの項目をひとつのリストボックスには表示しきれず、スクロールバーで探すのも大変なので、例えば数字Keyで1と打てばすぐに「中山」が選択され、さらにEnterKeyで転送される、98と打てば「吉岡」が選択され・・・という風に機能追加したいのです。 いろいろ調べましたが、方法が分かりませんでした。 よろしくお願いします。

  • セルのデータをListBoxに表示したい。

    エクセルVBAで作りたいのですが A列に同じ文章が13行、その下に違う文章で13行、又その下に違う文章で13行・・・・・と入っています。この文章の各先頭行だけ集めてUserFormの中のListBoxに表示させたいのです。わかりづらいかもしれませんがよろしくお願いします。 A列 あ あ  13行 あ ・ ・ い い  13行 ・ ・ う う  13行 ・ ・   ListBoxに あ い う え お ・ ・ と表示したいのです。

  • エクセルVBAで、ユーザーフォーム初期化時のエラー

    Excel97を使用しています。 コンボボックスにリストをセットしようとして、 Private Sub Workbook_Open() Range("A1:A5").Name = "社員" 'セル範囲はブックを開く度に変わります End Sub Private Sub UserForm_Initialize() ComboBox1.ListFillRange = "社員" End Sub というコードを書いたのですが、 「コンパイルエラー:メソッドまたはデータメンバが見つかりません。」というエラーが出てきて、 .ListFillRange = の部分が選択されてしまいます。 ListFillRange を RowSource に変更するとエラーは出ないのですが、RowSource で設定してしまうと、後にリストが変更できないと教わりましたので、これ以外でコンボボックスにリストをセットする方法がありましたら教えて下さい。 プロパティ/メソッドの一覧にListFillRangeが見当たらなかったので、もしかしたらエクセル97では使えないのでしょうか? どうぞよろしくお願いします。

  • Excelで質問です。ListBoxの項目を別bookから読込むには

    Excelで質問です。ListBoxの項目を別bookから読込むには VBA初心者です。 book-AのListBox1からbook-Bのセルの項目を読み込むことは可能なのでしょうか。 Excel2003です。 book-AのUserForm1に下記のコードを実行しても構文エラーになってしまいます。 book-Aとbook-Bは同じフォルダに入っています。出来ればbook-Bを閉じた状態で実行できれば良いのですが Private Sub UserForm_Initialize() ListBox1.RowSource =[book-B.xls]Sheet1!A1:A10 End Sub

  • エクセルVBA ListBoxの並び替え:VBA初心者です

    Listbox.additemで、追加していったListを並び替えてListboxに表示したいのですが、可能ですか? 並び替えは、エクセルのユーザー設定リストの順番にしたいです。

  • VB今日で2週間め!コーデリング教えて下さい!

    エクセルVBA初心者で、なんだか何を聞くのも怖い感じなのですが、どのようにコードを書いてよいのか解りません、 どうか御教授お願い致します。 A列のセルがコンボボックスのリストに反映されるようになっています、 Private Sub ComboBox1_Change() ActiveSheet.ComboBox1.ListFillRange = "A1:A20" End Sub コンボボックス内のドロプダウンリスト内に選ぶべき項目がない時に、 コンボボックスに書き込み、Enterを押すとA列のセルに選択項目が A21・A22・・・・A26と増えていく様にしたいのですが、 どのようにすればよいのでしょうか? 宜しくお願い致します。

専門家に質問してみよう