質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
コンボボックス

GUIの要素のひとつです。Listboxと同様にいくつかのうちひとつを選択する機能だが、Comboboxの場合は選択されたもののみがデフォルトとして表示される。

解決済

コンボボックス(フォームコントロール)のリストに可変するデータの空白セルを除いて表示させたい。

7snow
7snow

総合スコア12

コンボボックス

GUIの要素のひとつです。Listboxと同様にいくつかのうちひとつを選択する機能だが、Comboboxの場合は選択されたもののみがデフォルトとして表示される。

2回答

0評価

1クリップ

5867閲覧

投稿2019/05/06 10:09

編集2019/05/11 04:59

前提・実現したいこと

Excelで、コンボボックス(フォームコントロール)を使い、同一ブック内の別のシートにあるA列のデータをリスト表示させたい。
ただし、A列のデータは可変するため、空白セルを除いてリスト化したい。

下記の試したことに書いてますが、名前の定義を活用して作成しようしています。しかし、上記が実現できるのであれば、VBAで記述する方法でも問題ありません。

お手数かけますが、ご回答よろしくお願いします。

試したこと

可変するデータに対応するために、名前の定義で参照範囲にOFFSET関数を使用して、空白セルを除いて参照できるようにした。
続いて、コンボボックスのコントロールの書式設定のコントロールタブの入力範囲に、上で作成した名前を記述したが、エラー「参照が正しくありません。」が発生した。

補足情報(FW/ツールのバージョンなど)

Excel 2016

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

ttyp03

2019/05/07 04:54

名前の定義で範囲を動的にすることができているのでしたら、現状何が出来ていないのでしょうか?
7snow

2019/05/08 13:39

セルの入力定義のリストへ、定義した名前を指定すれば、データに応じて可変することが確認できたのですが、やりたいことは、コンボボックス(フォームコントロール)で動的に変化する値のリストを表示させることです。 製造履歴をコピーしたときに、履歴によって型名が1から50種類ぐらいに可変する、数件しかない場合に、空白行が目立ち見栄えが悪くなることからリストを可変させたく思っています。 尚、コンボボックス(フォームコントロール)への名前の設定は、コントロールの書式設定のコントロールタブの入力範囲に入力しようとしていますが、入力すると名前で指定できたないため、別の手段で実現させる方法がないか教えて頂きたく思ってます。 解決策がわかりましたら、ご教示いただきたく、よろしくお願いします。
ttyp03

2019/05/08 23:57

例えばA列を名前の定義で「ComboItems」と定義しておくとします。コンボボックスの書式設定を開いて「入力範囲」に「ComboItems」と入れれば名前の定義で設定した範囲でアイテムとして出てきますが、それではダメということでしょうか?
7snow

2019/05/11 03:52

ttyp03さんにコメントいただき、再確認したところttyp03さん同様に問題なくできたため、エラー原因を調査したところ私のミスということが判明しました。 原因は、名前の定義で参照先に指定したOFFSET関数の結果がエラーになる場合(※)があり、エラーしているときにコンボボックス(フォームコントロール)で名前を指定すると「参照が正しくありません。」という結果になっていました。お恥ずかしい結果ですが、おかげさまで解決することができました。ありがとうございました。 ※エラーになる場合 A列を参照先にしていましたが、下記関数としていた為、A列のタイトルをカウントから外すためOFFSETの高さを-1していました。しかし、A2以降のデータがないとき高さが0になってしまい、OFFSET関数がエラーを返していました。A2列以降にデータが入っていればコンボボックス(フォームコントロール)で名前を指定してもエラーになりませんでした。 【修正前】=OFFSET(Sheet1!$A$2,0,0,COUNTA(Sheet1!$A:$A)-1,1) 【修正後】=OFFSET(Sheet1!$A$2,0,0,COUNTA(Sheet1!$A:$A),1)  ・・・ -1を削除

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

コンボボックス

GUIの要素のひとつです。Listboxと同様にいくつかのうちひとつを選択する機能だが、Comboboxの場合は選択されたもののみがデフォルトとして表示される。