
EXCELのシート上にコンボボックスがあります。
ここには、ある列のA1からデータが入っている最後のセルまで(例えばA14)の一覧を表示したいと思っています。
参照するセルの終わりが、A14やA20など、どこまでデータが入力されているかによって可変で変わります。
その場合、少し大目にA1:A50としておくと、データが入っていない空白セルまでコンボボックスの一覧に表示されてきます。
こうならないように、データが入っている範囲だけとしたい場合、どのような設定にすればよいでしょうか。
よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは。
Wendy02です。>コンボボックスの横にリスト一覧のように、全ての選択肢が表示されてきます。
今は、良くイメージが沸かないのです。
私は、これらのコントロールの名称からデフォルトの名前以外で使用することもありませんので、どうしてもおっしゃっていることが理解できません。たぶん、コメントのような感じになっているのかなって思います。
仮に、ListFillRange の列を複数に登録しても、やはりコンボボックス(ComboBox)としては機能します。ただし、CodeList が、ComboBoxではなく、ListBox の場合は、事情が違います。
ListRows が、100とか、かなり大きな値が入っているのかもしれませんが、リスト一覧が、右横に出る、というのはCombBox では記憶にありません。ListRows の値は、10ぐらいまでに戻していただくとして、他にあるとすれば、Excelのトラブルぐらいですね。
引用される(ListFillRange)のセル幅に影響を受けるか、もしくは、CombBox の置いてあるセル幅に影響を受けているか、ということになります。その場合は、一旦、標準幅に戻してあげ、それで保存してから、元の大きさに戻すとかすると良いかもしれません。ただし、この方法は、ComboBox ではなく、入力規則のドロップダウンリストの際のトラブルに用いる方法です。
CombBox では聞いたことがありません。しかし、それでも調子が悪いようなら、新たにデフォルトで作り直したほうが早いような気がします。
他に、思い当たる要素は考えられないのです。
No.2
- 回答日時:
こんにちは。
Wendy02です。>Set cell1 = Sheets("sheet1").Range("B2")
>Set cell2 = Sheets("shhet1").Range("B65536").End(xlUp)
'Sheets("shhet1") のSheet1 のつづりが違っています。
>CodeList.ListFillRange = Range(cell1, cell2).Address
>ここでエラーがでていまいます。
424: アプリケーションまたはオブジェクト定義のエラー
でしたら、違う場所に書いていらっしゃるようですが、「コントロールツールのコンボボックス」は、シートモジュールです。(Sheet1 なら、Sheet1のモジュールです)
424:オブジェクトが必要です
でしたら、もともと、CodeList の名称が違っていることになります。
だから、「CodeList」をコンボボックス名としたら、
シートモジュール、つまり、ワークシートのシートタブを右クリックすると、「コードの表示」というのがありますから、それをクリックして出てくるエディタウィンドウに書くわけです。
CodeList.ListFillRange =""
CodeList.ListFillRange = Range("B2", Range("B65536").End(xlUp)).Address
という二行は、そのまま生かせるはずですね。
この回答への補足
いつも丁寧な解説ありがとうございます。
シート名は、こちらに書き写すときにシート名を変更した時に間違えました。
教えて頂いたようにしてうまくいきました!
ただ、次のようになるのですが、これは仕方ないのでしょうか。
コンボボックスのイメージは、▼をクリックしたら、下にドロップダウンリストのように出てくると思っていたのですが、コンボボックスの横にリスト一覧のように、全ての選択肢が表示されてきます。
また選択肢が大変多いため、下のほうの選択肢が画面に表示されないのですが、これはどのようにすれば改善できるのでしょうか。
No.1
- 回答日時:
こんにちは。
コンボボックスには、二種類があります。
それぞれによって設定の仕方が違います。
フォームの場合は、
挿入-名前-定義
名前(W)
Hani (任意の名前)
参照範囲:
=INDIRECT("Sheet1!$A$1:$A$"&COUNTA(Sheet1!$A$1:$A$100))
100までをカウントする
「OK」
で
フォーム-右クリック-コントロールの書式設定
入力範囲(T) 「Hani」
'------------------------
コントロールツールのコンボボックスの場合
まず、コントロールツールバーを出して
「青い三角定規」ボタンをオンにして、編集可能にさせます。
右クリックで、プロパティ-ListFillRange が書かれていたら、それを消します。
次に、コンボボックスをダブルクリックして、画面を替えて、
Visual Basic Editor 画面に替え
Private Sub ComboBox1_Change() '←予め出ている* 削除
End Sub '←予め出ている* 削除
* この2行は削除してください。
以下を貼り付けてください。
'-----------------------------------------------------------------
Private Sub ComboBox1_DropButtonClick()
ComboBox1.ListFillRange = ""
ComboBox1.ListFillRange = Range("A1", Range("A65536").End(xlUp)).Address
End Sub
'-----------------------------------------------------------------
ただし、これは、A列は、他に利用しないことにしていますから、そうでない場合は、
100行までしか使わないなら、このようにしてもよいです。
ComboBox1.ListFillRange = Range("A1", Range("A100").End(xlUp)).Address
Alt + Q で画面を閉じて、
「青い三角定規」ボタンをオフにして、編集不可にしてから、コントロールツールバーを閉じます。
後は、ボタンのクリックで、自動的に範囲が変わっています。
この回答への補足
丁寧なアドバイスありがとうございます。
コントロールツールボックスからですので、以下のとおりにやってみましたが、「Rangeメソッドは失敗しました」というメッセージが出てしまいます。
教えて頂いたのをアレンジしたのですが、記述が間違っているのでしょうか。
dim cell1 as range
dim cell2 as range
Set cell1 = Sheets("sheet1").Range("B2")
Set cell2 = Sheets("shhet1").Range("B65536").End(xlUp)
CodeList.ListFillRange = Range(cell1, cell2).Address
↑
ここでエラーがでていまいます。
すみませんが、アドバイスお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 同じExcelのBOOK内で 1枚目のシートのA1のセルにデータを 入れると2枚目のシートのC1のセ 1 2022/10/25 09:40
- Excel(エクセル) マクロ セルの選択 5 2022/08/12 22:47
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) エクセルの昇順での数値入力のミスの見つけ方を教えてください。 4 2022/06/26 20:41
- Excel(エクセル) エクセル表作成について 5 2023/03/12 13:25
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) 日本語向きの“ダブルクオーテーション”の入力 1 2022/10/16 11:33
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- Excel(エクセル) 条件付き書式 ある範囲で色がついているセルと同行の別のセルに色を付けたい 4 2022/04/20 07:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】エラー【#DIV/0!】が...
-
セルにぴったし写真を挿入
-
EXCELのVBAで複数のシートを追...
-
勤怠表について ABS、TEXT関数...
-
オートフィルターの絞込みをし...
-
エクセル画像(写真)挿入
-
【マクロ】【画像あり】関数が...
-
エクセルシートの見出しの文字...
-
【Officer360?Officer365?の...
-
Excelで4択問題を作成したい
-
エクセルの複雑なシフト表から...
-
空白のはずがSUBTOTAL関数でカ...
-
エクセル
-
グループごとの人数のカウント
-
グループごとの人数のカウント
-
エクセル GROUPBY関数について...
-
エクセルのリストについて
-
エクセルについて
-
グループごとの個数をカウント...
-
エクセルの関数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報