Office 2019 Access 2019

コンボボックスとリストボックスのカスタマイズ(プロパティの設定)

投稿日:2022年7月16日 更新日:

フォームにコンボボックスやリストボックスを使用すると、一覧のリストの中から選択できるようになります。

作成方法はいくつかありますが、コンボボックスとリストボックスは、それぞれ特徴があります。

プロパティの設定でさまざまなカスタマイズができます。

コンボボックスとリストボックス

コンボボックス/リストボックスの作成

フォームにコンボボックスを作成する方法は、いくつかあります。

  • [コンボボックスウィザード][リストボックスウィザード]を使用して対話形式で作成する
  • ウィザードを使用しないで作成
  • テキストボックスからコンボボックス/リストボックスへコントロールの種類を変更
  • テーブルのルックアップでコンボボックス/リストボックスを作成して挿入

参考リスト ボックスまたはコンボ ボックスを追加する(Microsoft)

ウィザードを使用して対話形式で作成

[フォームデザイン]タブの[コントロール]グループにあるコントロールの一覧から[コンボボックス]または[リストボックス]を選択して挿入します。

対話形式で作成する方法については、以下の記事を参考にしてください。

フォームのコンボボックスの値でレコードを抽出

Accessの分割フォームのデータシートビューには、Excelのフィルターと同じようにフィルターボタンがあり、Excelの操作と同じように様 ...

続きを見る

上記は、コンボボックスの作成方法を記していますが、リストボックスも同じように作成できます。

ウィザードを使用するには、[コントロールウィザードの使用]がオンになっていることを確認します。

[フォームデザイン]タブの[コントロール]グループにあるコントロールの一覧

[コンボボックス]も[リストボックス]も、ウィザードを使用せずにプロパティで設定することもできます。

コントロールの種類の変更

テキストボックスをコンボボックスやリストボックスへ変更することができます。

テキストボックスを右クリックしてショートカットメニューの[コントロールの種類の変更]から[リストボックス]、または[コンボボックス]を選択します。

[コンボボックス]から[リストボックス]へ、[リストボックス]から[コンボボックス]へ変更することもできます。

ショートカットメニューの[コントロールの種類の変更]

テーブルのルックアップでコンボボックス/リストボックスを作成

テーブルのルックアップで[コンボボックス]、または[リストボックス]を設定した場合は、フォームでは自動的にコンボボックス、リストボックスとなります。

テーブルのルックアップ

ルックアップウィザードについては、以下の記事で解説しています。

ルックアップウィザードでコンボボックスの設定(別のテーブルから値取得)

Accessのテーブルで、フィールドに入力する値をコンボボックスから選択する方法です。 コンボボックスとは、フィールドの値を入力する代わりに ...

続きを見る

ルックアップウィザードを使用してドロップダウンリストを設定(値を直接入力)

テーブルのデータ型には、[ルックアップウィザード]というのがあります。 ルックアップウィザードを選択して、ウィザードに従って設定していくと、 ...

続きを見る

コンボボックスのプロパティ設定

どういう作成方法であっても、コンボボックス/リストボックスのプロパティは同じです。

ウィザードを使用すると、自動的にいくつかのプロパティは設定されますが、完成後に変更できます。

ここでは、コンボボックスのプロパティの設定について解説します。

プロパティの表示

以下は、[フォームデザイン]タブの[コントロール]グループにあるコントロールの一覧から[コンボボックス]を選択して挿入しています。

ウィザードを使用せずにコンボボックスを追加して、プロパティを表示しています。

プロパティを表示するには、[フォームデザイン]タブの[ツール]グループにある[プロパティシート]をクリックします。

プロパティシートの[選択の種類]が[コンボボックス]と表示されていることを確認します。

コンボボックスには、[非連結]と表示されます。

[非連結]とは、テーブルやクエリのデータがもとになっていないということです。フォームをテーブルやクエリをもとに作成した場合は、[非連結]とは表示されません。

テーブルやクエリを基に作成したフォームでは、目的のフィールドを挿入すると、フィールド名(コントロールソースプロパティ)が表示されます。

[フォームデザイン]タブの[ツール]グループにある[プロパティシート]

または、キーボードから[F4]キーを押してもプロパティを表示できます。プロパティの表示/非表示の切り替えができます。

キーボード[F4]

そのほか、コンボボックスで右クリックしてショートカットメニューから[プロパティ]をクリックしても表示できます。

ショートカットメニューの[プロパティ]

このままフォームビューに切り替えても、コンボボックスのデータは空っぽです。

フォームビューの空のコンボボックス

コンボボックスに表示する値を設定

コンボボックスのプロパティ[データ]タブに[値集合ソース]と[値集合タイプ]があります。

ここでコンボボックスに表示する値を設定します。

コンボボックスのプロパティ[データ]タブにある[値集合ソース]と[値集合タイプ]

[値集合タイプ]には、3つの選択肢があります。

値集合タイプの選択肢

  • テーブル/クエリ
  • 値リスト
  • フィールドリスト

[テーブル/クエリ]を選択すると、[値集合ソース]には使用できるテーブルとクエリが表示されます。

[値集合ソース]で使用できるテーブル/クエリ

[値リスト]を選択すると、表示するリストを直接入力できるようになります。

文字列との区切りは、セミコロン[;]を使用します。保存すると、文字列は自動的に["]で囲まれます。

[値集合タイプ]で[値リスト]を選択した時の[値集合ソース]

[フィールドリスト]を選択すると、値の取得元のフィールドの一覧を選択できます。

たとえば、以下のように[値集合ソース]に[T_商品一覧]を選択して、[値集合タイプ]を[フィールドリスト]にすると、

[値集合タイプ]で[フィールドリスト]を選択した時の[値集合ソース]

テーブル[T_商品一覧]のフィールド名がコンボボックスのリストに表示されるようになります。

リストにフィールド名が表示されたコンボボックス

リストの列数と列幅

[値集合ソース]には、[T_商品一覧]を選択してリストを表示するようにしています。

コンボボックスのプロパティ[値集合ソース]と[値集合タイプ]

テーブル[T_商品一覧]は、以下のように5つのフィールドがあります。

テーブルのデータシートビュー

既定では、1列目の[商品ID]しか表示されません。

商品IDが表示jされたコンボボックス

テーブルの1列目と2列目を表示するには

コンボボックスのリストに、テーブルの1列目と2列目を表示したい場合の方法です。

コンボボックスのプロパティを[書式]タブに切り替えます。

[列数]を[2]にして、[列幅]を指定します。列幅は[;](セミコロン)で区切ります。

入力する場合は、[1;3]のように入力してかまいません。[cm]は自動で表示されます。

コンボボックスのプロパティ[列数]と[列幅]

フォームビューに切り替えると以下のように2列が表示されるようになります。

商品IDと商品コードが表示されたコンボボックス

参考このとき水平スクロールバーが表示されるようになりますが、これはプロパティの[リスト幅]が[自動]になっているためです。

コンボボックスの水平スクロールバー

コンボボックスのプロパティ[リスト幅]

水平スクロールバーを非表示にするには、[リスト幅]を[列幅]に合わせた数値にします。

ここでは、[リスト幅]を[4cm]すればOKです。

また、コンボボックスの[幅]も同じにしておくと、綺麗なコンボボックスになります。

コンボボックスのプロパティ[列幅][リスト幅][幅]

コンボボックスの[幅]と[リスト幅]と [列幅・列数]

リストから選択すると、表示されている1列目の値のみが表示されます。

選択後に表示されるリストの列幅に合わせてコンボボックスの幅を調整してもいいと思います。

リストから選択した後のコンボボックス

コンボボックスの2列目の値をテキストボックスに表示する方法については、以下の記事で解説しています。

コンボボックスの2列目の値をテキストボックスに自動表示するには

Accessのフォームでコンボボックスの2列目の値を取得する方法です。 コンボボックスの更新後処理の[マクロビルダー]か、[コードビルダー] ...

続きを見る

テーブルの2列目と3列目を表示したい場合

コンボボックスのリストに、テーブルの2列目と3列目を表示したい場合の方法です。

[列数]を[3]にして、[列幅]を[0cm;2cm;3cm]にします。

[リスト幅]と[幅]も調整します。

コンボボックスのプロパティ[列数][列幅][リスト幅][幅]

コンボボックスのリストは以下のような表示になります。

フォームビューで表示したコンボボックス

リストから選択すると、表示リストの1列目の値が表示されます。

リストから選択後のコンボボックス

リストの並べ替え

コンボボックスに表示するリストを[商品ID]の降順に並べ替えたい場合の方法です。

[列数]を[3]にして、[列幅]を[0cm;2cm;3cm]にしている場合です。

コンボボックスのプロパティ

[データ]タブの[値集合ソース]の右端にある[…]をクリックします。

コンボボックスのプロパティ[値集合ソース]

以下のウィンドウが表示されますので、[はい]をクリックします。

テーブルを基にしてクエリビルダーが起動されました。

このテーブルを基にしてクエリを作成しますか?

[テーブルを基にしてクエリビルダーが起動されました。]のメッセージウィンドウ

クエリビルダーが表示されますので、3列を順番どおりにデザイングリッドに登録します。

そして、[商品ID]の[並べ替え]で[降順]を選択します。

[実行]をクリックして並びを確認します。

クエリビルダーで設定

クエリビルダーの[閉じる]ボタンをクリックします。

クエリビルダーの[閉じる]ボタン

以下のメッセージウィンドウが表示されますので、[はい]をクリックします。

SQLステートメントの変更を保存し、プロパティの設定を変更しますか?

[SQLステートメントの変更を保存し、プロパティの設定を変更しますか?]のメッセージウィンドウ

フォームビューで確認すると、[商品ID]の降順の並びで表示されます。

クエリビルダーで設定後のコンボボックス

設定後の[値集合ソース]プロパティには、以下のように長い文字列が並んでいます。再編集したい場合や確認する場合は、[値集合ソース]の[…]をクリックします。

コンボボックスウィザードを使用した場合も、テーブル/クエリ名ではなく以下のように表示されていることがあると思います。

プロパティ[値集合ソース]の[…]

フィールドの並べ替え

クエリビルダーでフィールドの並び順なども変更することができます。

たとえば、クエリビルダーで以下のようにフィールドの並びを[商品コード][商品][商品ID]の順に変更します。

クエリビルダーでフィールドの並べ替え

コンボボックスのリストの並びは以下のようになります。

以下の画像は、プロパティで[列幅]を[2cm;2cm;1cm]にしています。

連結列]を[1]にしていれば、この場合、連結列は[商品コード]になります。連結列は重要なので、気をつけてください。

クエリビルダーで並びを変更したコンボボックス

リスト行数

[リスト行数]は既定で[16]となっています。

コンボボックスのプロパティ[リスト行数]

リスト行数が16よりも大きい場合は、自動的に垂直スクロールバーが表示されます。

リスト行数が16より小さい場合は、リスト数に合わせなくても空白行が表示されることはありません。

コンボボックスのリスト行数

連結列

[連結列]とは、リストのどの列をコントロールの値として使用するかを示すものです。データとして保存される値にもなります。

[列数]プロパティで設定した列の左から1として数えます。

連結列の既定値は[1]です。

コンボボックスのプロパティ[連結列]

ここでは、[0cm;2cm;3cm]として、1列目は非表示にしていますが、[連結列]は1列目の[商品ID]になります。

テーブルに主キーを設定している場合などは、主キーを連結列にすることが多いです。

コンボボックスのプロパティ[列数]と[列幅]

参考クエリビルダーでフィールドの並びを変更した場合も気をつけてください。

コンボボックスの連結列は、どのフィールドになっているかを確認するには、非連結のテキストボックスを挿入して、[コントロールソース]プロパティにコンボボックスボックスの名前を入力してみてください。

[テキストボックスの[コントロールソース]プロパティにコンボボックスボックスの名前を入力

フォームビューに切り替えて、テキストボックスに表示される値が目的のフィールドの値になっていない場合は、連結列か、フィールドの並びを変更してください。

フォームビューに切り替えて確認

入力チェック

コンボボックスは、リスト以外の値が入力できます。

リスト以外の値を入力させないようにするには、[入力チェック]を[はい]にします。

コンボボックスのプロパティ[入力チェック]

[はい]にすると、リスト以外の値を入力した時に、以下のメッセージウィンドウが表示されます。

指定した項目はリストにありません。

リストから項目を選択するか、リスト項目と同じテキストを入力してください。

[指定した項目はリストにありません。]のメッセージウィンドウ

参考入力チェックについては、以下の記事で解説しています。リストボックスのプロパティには、[入力チェック]の項目はありません。

コンボボックスにリスト以外の値が入力されないようにするには

テーブルやフォームでコンボボックスのリストから値を選択して入力するようにしていても、プロパティの[入力チェック]を[いいえ]に設定していると ...

続きを見る

値リストの編集の許可

[値リストの編集の許可]は、[値集合タイプ]で[値リスト]を選択した場合の動作になります。

[値リストの編集の許可]を[はい]に設定すると、コンボボックスのリストに表示する値をフォームビューから編集できるようになります。

頻繁に変更があるリストなどの場合は、意外と便利です。ただ、共有で使用する場合は、自由にカスタマイズできていいのか判断して設定してください。

コンボボックスのプロパティ[値リストの編集の許可]

プロパティの[書式]タブでは、[列数]は[1]、[列幅][リスト幅][幅]は[3cm]にしています。

コンボボックスのプロパティ[書式]タブ

[値リストの編集の許可]を[はい]に設定してフォームビューに切り替えると、以下のように[リスト項目の編集]というのが表示されます。

コンボボックスの[リスト項目の編集]ボタン

[リスト項目の編集]をクリックすると、[リスト項目の編集]ダイアログボックスが表示されます。

上部に記されているとおり、1行に1項目ずつ入力します。

また、[既定値]の▼ボタンをクリックして、フォームビューを表示した時にコンボボックスに表示される値を指定できます。

[リスト項目の編集]ダイアログボックス

以下のように[既定値]は[もも]を選択して、[OK]ボタンをクリックします。

[リスト項目の編集]ダイアログボックスで既定値を設定

保存すると、コンボボックスには[もも]が表示されます。

コンボボックスのリストを表示すると、[メロン]が追加されています。

設定後のコンボボックス

コンボボックスのプロパティ[値集合ソース]と[既定値]も変更されています。

フォームビューで編集後のプロパティ

リストボックスのプロパティ設定

リストボックスはリストが常に表示されている状態なので、コンボボックスのようにプルダウンを表示するために▼ボタンをクリックする手間を省けます。

コンボボックスは、簡単にリストボックスに変更できます。

以下は、作成済みのコンボボックスです。[値集合ソース]は、テーブル[T_ 商品一覧]を指定しています。

コンボボックスのプロパティ[値集合ソース]

[列幅]は、[0cm;2cm;3cm]にしています。

コンボボックスを選択して、右クリックのショートカットメニューから[コントロールの種類の変更]-[リストボックス]を選択します。

ショートカットメニューから[リストボックス]を選択

以下のように高さが自動的に広がります。

リストボックスは、コンボボックスより、広い領域を必要とします。

リストボックスのプロパティには、[リスト行数]と[リスト幅]はありません。

そのほかのプロパティの設定は同じです。

リストボックスのプロパティ

このままフォームビューに切り替えると、以下のようなリストボックスになります。

フォームビューに切り替えたリストボックス

リストボックスの[高さ]の調整

リストボックスの[高さ]を調整する場合は、フォームを[レイアウトビュー]に切り替えると操作しやすくなります。

[フォームデザイン]タブの[表示]から[レイアウトビュー]を選択します。

[フォームデザイン]タブの[表示]から[レイアウトビュー]を選択

枠にマウスを合わせて、マウスの形が上下矢印に変わったときにドラッグで調整します。プロパティに反映されます。

リストボックスの高さをドラッグで調整

以下のように調整できます。幅も同様に調整できます。

調整後のリストボックス

参考[レイアウトビュー]は文字列に合わせて調整したい場合に役立ちます。リストボックスだけでなく、デザインビューで調整しにくい場合はレイアウトビューを使用されることをおすすめします。

レイアウトビューでフォームのコントロールをカスタマイズ

Accessのフォームには、デザインビュー、レイアウトビュー、フォームビューの3つの表示方法があります。 コントロールのサイズや位置などを調 ...

続きを見る

列見出しの表示

リストボックスのプロパティの設定もコンボボックスと同じです。

[列見出し]を[はい]にしてみます。

リストボックスのプロパティ[列見出し]

以下のように列見出し(フィールド名)が表示されるようになります。コンボボックスの場合も同じです。

列見出し(フィールド名)が表示されるようになったコンボボックス

プロパティの比較

コンボボックスとリストボックスのプロパティを比較すると、以下の3つの項目がリストボックスにはありません。

  • リスト行数
  • リスト幅
  • 入力チェック

コンボボックスとリストボックスのプロパティ[書式]タブ

リストボックスは、リスト以外の値を入力することはできませんので、[入力チェック]の項目はありません。

コンボボックスとリストボックスのプロパティ[データ]タブ

コンボボックスとリストボックスの違い

[コンボボックス]と[リストボックス]の違いを簡単にまとめると、以下のようになります。

  コンボボックス リストボックス
リスト以外の値の入力 できる できない
キーボードからの入力 できる できない
設置領域 小さい 大きい
入力操作 ドロップダウン形式 直接選択

コンボボックスは、リスト以外の値を入力できますが、リストボックスはリスト以外の値は入力できません。

コンボボックスでリスト以外の値を入力されないように、プロパティで設定することはできます。

コンボボックスにリスト以外の値が入力されないようにするには

テーブルやフォームでコンボボックスのリストから値を選択して入力するようにしていても、プロパティの[入力チェック]を[いいえ]に設定していると ...

続きを見る

コンボボックスにカーソルを置くと、自動的にリストを表示するように設定することもできます。

コンボボックス内にカーソルが移動すると自動でリストを表示するには

Accessの入力フォームでコンボボックスを使うことは多いと思います。 コンボボックスって、▼ボタンを押してリストを表示しますが、コンボボッ ...

続きを見る

リストボックスは、キーボードから入力することはできません。マウスで選択します。

コンボボックスは、ドロップダウン形式なので少ない領域に設置できますが、リストボックスはリストが多くなれば、その分の領域が必要になります。

リストボックスは一覧が表示されるので、コンボボックスより素早く入力できます。

参考コンボボックスとリストボックスの違いは、以下のルックアップウィザードの記事でも解説しています。

ルックアップウィザードでコンボボックスの設定(別のテーブルから値取得)

Accessのテーブルで、フィールドに入力する値をコンボボックスから選択する方法です。 コンボボックスとは、フィールドの値を入力する代わりに ...

続きを見る

Excelでもコンボボックスとリストボックスを作成することができます。

リストボックス(コンボボックス)の選択項目でセルの行に色を付ける

フォームコントロールのリストボックス、またはコンボボックスを設置して、リストで選択した項目を含むセルの行に塗りつぶしを設定します。 リストボ ...

続きを見る

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

Profile

執筆者/はま

-Office 2019 Access 2019

Copyright © 2001-2024 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2024 AllRights Reserved Powered by AFFINGER4.