• ベストアンサー

VBAのリストボックスについて

 今、ユーザーフォームをつくり、その中にリストボックスを配置したんですけど、セルに入力されている値を表示したいと思い、RowSourceプロパティに"sheets1!A1:C100"と指定しました。しかし、実際リストボックスに表示されたのは先頭のA列だけで、B、C列は表示されませんでした。どうしたらこれらは表示できるのでしょうか。もとの参照データが膨大な為、よろしくお願いします。

  • feilu
  • お礼率12% (11/87)

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

  • ベストアンサー
  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.3

columncountを3にする。

feilu
質問者

お礼

なるほど!確かに一発で出ました。これからも作成する途中でまた質問すると思うのでよろしくお願いします。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

リストボックスに列挙し出したいデータが 例えばA1:A5に 東京 京都 名古屋 九州 沖縄 と入れてあるとします。 リストボックスのところでマウス右クリック。 「コントロールの書式設定」をクリック。 「コントロール」タブをクリック。 「入力範囲」ボックスに「A1:A5」とか範囲を入れる。 リストボックスに列挙し出したいデータが、別シートShhet2の例えばA1:A5にあれば Sheet2!A1:A5と指定すればそれでも有効です。テスト済み。

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.1

RowSourceプロパティは読んで字のごとくROW(列)を書き出すものです。 なので、先頭であるA列しか書き出されません。 VBAでやるのであればこれでいかがでしょうか?? ----------------------------------- Dim i As Integer Dim j As Integer Const ColCount As Integer = 3 '抽出する列数 Const RowCount As Integer = 100 '抽出する行数 For i = 1 To ColCount For j = 1 To RowCount ListBox1.AddItem ActiveSheet.Cells(j, i), (j - 1) + ((i - 1) * RowCount) Next Next ----------------------------------- ※テストしてませんので、動作保証は致しません。

feilu
質問者

補足

どうもありがとうございます。早速試してみます。 実は今、リストボックスというのがシートに記述してあるデータをリストボックスに表示し、それを検索画面にして選択したデータ(行)の先頭を別シートのセルに入力させるという作業をしてます。何か他に便利な機能等がありましたらよろしくお願いします。

関連するQ&A

  • VBA コンボボックス リスト表示について

    初心者ですいません エクセル VBAのフォームでコンボボックス3つと、テキストボックス3つがあります シートのListにA~F列までのデータがあり、コンボボックス1にA列のリストを表示し コンボボックス2にA列で選んだリストを参照したB列のリストを表示し、コンボボックス3 にコンボボックス1,2で選んだリストを参照し、C列のリストを表示した後、 コンボボックス1,2,3で選ばれたもののD列、E列分をテキストボックス1,2に 反映しようと思っておりますがうまくいきません どのようにしたらよいか、おしえてください 宜しくお願いします ちなみに、リストの内容は A列   B列   C列     D列   E列 テレビ 42インチ  HDD内蔵  台    100,000 テレビ 32インチ  BD内蔵   台     80,000 テレビ 19インチ          台     50,000 ビデオ HDD   1TB     台    100,000   ビデオ HDD   500GB    台     80,000 ビデオ BD            台     70,000 が、入ってます 希望は、質問の際のカテゴリ選択のようになればよいのですが... さらに、希望を言えば、自動で、行ごとに1,2,3...と番号を振るようにしており スピンボタンで番号を選べば、登録された上記のデータをフォームに反映させるようにしております これもうまくいきません お願いばかりで申し訳ありませんが 宜しくお願いします

  • VBAを使用しコンボボックスにリストを設定する方法

    いつもお世話になっております。 現在コンボボックスにリストを設定する方法について悩んでいます。 バージョンはExcel2003です。 コンボボックスに指定したい列がA列とB列なら通常下記のようにすると思います。     With ComboBox1       .ColumnCount = 2       .ColumnWidths = "50;50"       .RowSource = "Sheet1!A2:B5"     End With ただ今回はA列とC列をリストに設定したいと思い、下記のような設定にしたのですがうまく設定できません。     With ComboBox1       .ColumnCount = 2       .ColumnWidths = "50;50"       .RowSource = "Sheet1!A2:A5;C2:C5"     End With そもそもRowSource は連続的なデータを設定する場合のプロパティだと思うのですが、このように飛んだ列のデータを効率的に指定するにはどのようにするのが一番いいのでしょうか? 分かる方がいっらしゃいましたらご教授願います。

  • VBAのリストボックス連動がうまく表示されません。

    例えば、エクセル表に下記のようなデータが入っているとします。 A列は項目であり、B列は項目内容数(D列以降の項目数)、D列にはA列項目の内容が入っています。しかし、この列は変動する為、変数で指定しています。 これをリストボックス1で、まずA列の内容を表示させて、その中で選んだ項目をリストボックス2でD列以降の行内容を表示させ、リストボックス2の値を取得したいのですが、リストボックス2がうまくい表示できません。 リストボックス1では .RowSourceを使ってセル指定して表示させています。 このようなケースがuserformに多数あり、for~の処理はできるだけ避けています。 例えばUserForm_Initialize()で次の通りです。 With ListBox1 .ColumnCount = 1 .BoundColumn = 1 .RowSource = Worksheets(wksheet).Range(Cells(2, item_No), Cells(item_max_cnt, item_No)).Address(External:=True) VBA初心者で恥ずかしい質問ですが、どなたかご教示宜しくお願い致します。m(_ _)m A列_B列__D列_E列_F列_G列_H列 … a_3__あ_い_う b_1__か c_5__さ_し_す_せ_そ

  • コンボボックスのリストについて(エクセル、マクロ)

    またお世話になります。 多分簡単な疑問だと思うのですが・・・、 ユーザーフォームのコンボボックスのRowsourceの 設定に関して可変式にしたいので以下のように マクロ(一部を抜粋)を組んでみました。 Dim b As Integer b = 2 Do b = b + 1 Loop Until Sheets(3).Cells(b, "A") = "" ComboBox1.RowSource = Range(Cells(2, "A"), Cells(b - 1, "C")) が、「型が一致しません」と出てうまくいきません。 どうしたらよいでしょうか? また、 A列   B列 C列 2005/1/1 東京 10 ・ ・ ・ のようにシートには並んでいるものを コンボボックスのリストとして取り入れたいのですが 変な5桁の数字しか現れず(たぶんこの数字は 2005/1/1を標準値化した数値なのでしょうが) 3つきれいにそろって表れません。 こちらの方も解決していただけないでしょうか?

  • EXCEL VBAのコンボボックスに取り込むリストについて

    すいません、EXCEL VBAのコンボボックスにデータを取り込む方法について教えていただきたいことがあります。 (1)「シート1」のA列にデータが入力されている (2)ユーザーフォームにコンボボックスを設置し、このA列のデータを取り込む。 このときにA列に入っているデータの数だけ取り組むにはどうしたらいいのでしょうか。 シート1    A列 1行 11 2行 21 3行 31  ・   ・  ・   ・ Private Sub UserForm_Initialize() ComboBox1.RowSource = Sheets("シート1").Range("?") End Sub ?の部分がわかりません。End(xlup)のようなものを使ってデータが入っている最後の行を調べるのかと思いましたが、どうもうまくいきませんでした。 よろしくお願いします。

  • リストボックスの使い方

    お世話になります。 VBAで下記コードを書き、リストボックスにカラムを2列 表示させたいのですが、"番号"しかリストボックスに 表示されません。 Me.lst入居者一覧.ColumnCount = 2 Me.lst入居者一覧.RowSource = "SELECT 氏名,番号 FROM 一覧" Me.lst入居者一覧.ColumnWidths = "2;2" リストボックスのプロパティー等はちゃんと設定して いるつもりなのですが、何が原因なのでしょう? どうかよろしくお願いいたします。

  • エクセルVBA リストボックスの使い方について・・・

    Private Sub CommandButton1_Click() ListBox1.RowSource = "sheet1!A1:A8" End Sub 上記にあるようにA1~A8にあるデータをリストボックスに表示させたいのです・・・ でも上記方法だと、コマンドボタンをクリックしないと、リストボックスに登録できないですよね・・・ 自分的にはリストボックスが立ち上がった状態ですぐにA1~A8のデータをリストボックス内に表示させたいのですが、そのようなことが出来るのでしょうか? 宜しくお願い致します。

  • リストボックスのスクロールバーをマウスで動かしたい

    エクセル2007です。 Sheet1のA列に 1行目から順に 1 2 3 4 5 6 7 8 9 10 といれました。 ユーザーフォームを新規作成し、リストボックスを設置しました。 VBAコードは、 Private Sub UserForm_Initialize() Me.ListBox1.RowSource = "Sheet1!a1:a10" End Sub にしました。 VBE画面でF5を押して、フォームを表示させるとリストボックスにスクロールバーが表示されますが、 フォームをクリックして、マウスホイールでぐりぐりしても、リストは動きません。 画像のように、4にカーソルをあて、グリグリしてもダメです。 どうしたら動くようになるのでしょうか?

  • excel 2003 vba コンボボックス 日付

    始めまして初心者です。よろしくお願いします。 ワークシートのA列に日付、B列に作業内容、C列に作業人員が入力されているとします。 それをユーザーフォームから操作したいです。 ユーザーフォーム上にコンボボックスとテキストボックス1,2を設置しています。 コンボボックスのRowSourceにA列日付をセットしています。 コンボボックスを操作すると、その日付のB列、C列の内容をそれぞれテキストボックス1,2に表示させたいです。

  • アクセス リストボックス クエリの2列目のフィール

    クエリの2列目のフィールドを フォームのリストボックスに表示するにはどうすればいいですか? 連結列プロパティかな?と思い、2列目を表示したいので2としてみましたが 1列目がリストボックスに表示されました。 連結列プロパティのヘルプには、 リストボックスのどの列の値をコントロールの値として使用するかを示します。 とかいてあります。

専門家に質問してみよう