【Excel】フォームコントロールでリストボックス・スクロールバーを配置する方法

【Excel】フォームコントロールでリストボックス・スクロールバーを配置する方法
🛡️ 超解決

Excelでデータ入力や操作を効率化したい場面はありませんか。

リストボックスやスクロールバーといったフォームコントロールを使うと、マウス操作で直感的に項目を選択したり、数値範囲を指定したりできます。

この記事では、Excelのフォームコントロール機能を使って、リストボックスとスクロールバーをシート上に配置し、活用する手順を解説します。

これらのコントロールを使いこなせば、より洗練された業務シートを作成できるでしょう。

【要点】Excelフォームコントロールでリストボックス・スクロールバーを配置・設定する

  • リストボックスの配置と設定: 複数の選択肢から一つまたは複数を選択できるリストボックスをシートに配置し、表示する項目や選択された項目をセルに反映させます。
  • スクロールバーの配置と設定: 指定した範囲の数値を段階的に増減させるスクロールバーをシートに配置し、その値をセルに反映させます。
  • フォームコントロールとActiveXコントロールの違い: フォームコントロールとActiveXコントロールの特性を理解し、目的に応じた使い分けを把握します。

ADVERTISEMENT

フォームコントロールの概要と基本設定

Excelでインタラクティブな操作を実現するために利用できるのが「フォームコントロール」です。これらは、ボタン、チェックボックス、コンボボックス、リストボックス、スクロールバーなど、様々な種類があります。

フォームコントロールは、VBA(Visual Basic for Applications)を使わずに、シート上で直接操作できるのが特徴です。これにより、プログラミングの知識がなくても、ユーザーフレンドリーなシートを作成できます。

今回は、特にデータ選択に便利な「リストボックス」と、数値範囲の指定に役立つ「スクロールバー」の配置方法と設定について詳しく解説します。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

リストボックスの配置と設定手順

リストボックスは、あらかじめ用意された選択肢の中からユーザーに項目を選んでもらいたい場合に非常に便利です。複数選択を許可することも可能です。

リストボックスの配置方法

  1. 開発タブの表示
    Excelのリボンに「開発」タブが表示されていない場合は、まず表示させる必要があります。Excelの「ファイル」メニューから「オプション」を選択し、「リボンのユーザー設定」を選びます。右側のメインタブ一覧で「開発」にチェックを入れて「OK」をクリックします。
  2. コントロールの挿入
    「開発」タブの「挿入」ボタン(コントロールグループ内)をクリックします。「フォームコントロール」の項目から「リストボックス」のアイコンを選択します。
  3. シート上への描画
    シート上で、リストボックスを配置したい場所をクリック&ドラッグして、希望のサイズで描画します。

リストボックスの設定(書式設定)

  1. コントロールの書式設定を開く
    配置したリストボックスを右クリックし、「コントロールの書式設定」を選択します。
  2. 「コントロール」タブの設定
    表示されたダイアログボックスで「コントロール」タブを開きます。
  3. 「入力範囲」の設定
    「入力範囲」に、リストボックスに表示したい項目が入力されているセル範囲を指定します。例えば、A1セルからA5セルに項目が入力されている場合は、「$A$1:$A$5」のように指定します。
  4. 「セルリンク」の設定
    「セルリンク」に、選択された項目のインデックス(番号)を表示させたいセルを指定します。例えば、B1セルにインデックスを表示させたい場合は、「$B$1」のように指定します。
  5. 「選択の種類」の設定
    「単一」を選択すると、一度に1つの項目のみ選択可能になります。「複数」を選択すると、CtrlキーやShiftキーを使って複数の項目を選択できます。「複合」は、チェックボックスのように項目を選択・解除できます。
  6. 「3-D描画」のチェック
    必要に応じてチェックを入れます。
  7. 設定の完了
    「OK」をクリックしてダイアログボックスを閉じます。

リストボックスの動作確認

設定が完了したら、シート上のリストボックスをクリックして項目を選択してみてください。指定した「セルリンク」のセルに、選択された項目のインデックス番号が表示されるはずです。

例えば、入力範囲がA1:A3で、A1に「りんご」、A2に「みかん」、A3に「ぶどう」と入力されているとします。セルリンクをB1に設定した場合、

  • 「りんご」を選択 → B1セルに「1」が表示
  • 「みかん」を選択 → B1セルに「2」が表示
  • 「ぶどう」を選択 → B1セルに「3」が表示

となります。このインデックス番号を利用して、VLOOKUP関数などと組み合わせることで、選択された項目名そのものを別のセルに表示させることが可能です。

例えば、B1セルにインデックスが表示されている場合、C1セルに以下の数式を入力します。

=VLOOKUP(B1,$A$1:$A$3,1,FALSE)

これにより、B1セルのインデックスに対応する項目名がC1セルに表示されます。

スクロールバーの配置と設定手順

スクロールバーは、指定した範囲の数値を段階的に増減させながら選択したい場合に便利です。例えば、数量の調整や、スライダーのような操作感で数値を設定したい時などに活用できます。

スクロールバーの配置方法

  1. 開発タブの表示
    「開発」タブが表示されていない場合は、Excelのオプションから表示させてください。
  2. コントロールの挿入
    「開発」タブの「挿入」ボタン(コントロールグループ内)をクリックします。「フォームコントロール」の項目から「スクロールバー」のアイコンを選択します。
  3. シート上への描画
    シート上で、スクロールバーを配置したい場所をクリック&ドラッグして、希望のサイズで描画します。

スクロールバーの設定(書式設定)

  1. コントロールの書式設定を開く
    配置したスクロールバーを右クリックし、「コントロールの書式設定」を選択します。
  2. 「コントロール」タブの設定
    表示されたダイアログボックスで「コントロール」タブを開きます。
  3. 「最小値」の設定
    スクロールバーで設定できる最小の数値を指定します。
  4. 「最大値」の設定
    スクロールバーで設定できる最大の数値を指定します。
  5. 「単位」の設定
    スクロールバーのつまみを左右に動かしたときに、最小値・最大値の間でどれだけ数値を増減させるかを指定します。例えば「1」に設定すると、1ずつ増減します。
  6. 「ページ単位」の設定
    スクロールバーのバー部分(つまみがない領域)をクリックしたときに、どれだけ数値を増減させるかを指定します。通常は「単位」よりも大きな値を設定します。
  7. 「セルリンク」の設定
    スクロールバーで現在選択されている数値を表示させたいセルを指定します。例えば、C1セルに数値を表示させたい場合は、「$C$1」のように指定します。
  8. 「3-D描画」のチェック
    必要に応じてチェックを入れます。
  9. 設定の完了
    「OK」をクリックしてダイアログボックスを閉じます。

スクロールバーの動作確認

設定が完了したら、シート上のスクロールバーのつまみを動かしてみてください。指定した「セルリンク」のセルに、現在の数値がリアルタイムで表示されるはずです。

例えば、最小値を「0」、最大値を「100」、単位を「5」、セルリンクを「C1」に設定した場合、

  • つまみを左端に動かす → C1セルに「0」が表示
  • つまみを右端に動かす → C1セルに「100」が表示
  • つまみを少し右に動かす → C1セルに「5」が表示
  • バー部分をクリックする → C1セルの値が「ページ単位」で増減

といった動作になります。

このセルリンクの値は、他の数式で参照したり、さらに別の計算に利用したりすることが可能です。

ADVERTISEMENT

フォームコントロールとActiveXコントロールの違い

Excelには、フォームコントロールの他に「ActiveXコントロール」というものも用意されています。これらはどちらもシート上でインタラクティブな操作を実現するために使われますが、いくつかの違いがあります。

項目 フォームコントロール ActiveXコントロール
VBAとの連携 VBAなしでも利用可能。VBAから操作も可能。 VBAとの連携が前提。より高度な制御が可能。
互換性 Windows版・Mac版Excelで互換性が高い。 OSやExcelのバージョンによって互換性に問題が出ることがある。
カスタマイズ性 カスタマイズ性は低い。 プロパティ設定やイベント処理により、高度なカスタマイズが可能。
配置 シート上に直接配置。 シート上に配置。
主な用途 簡単なデータ入力補助、操作の簡略化。 複雑なユーザーインターフェース、業務アプリケーション開発。

一般的に、VBAを使わずに簡単な操作性を持たせたい場合はフォームコントロールが適しています。一方、より複雑な処理や、ユーザーとの高度な対話が必要な場合はActiveXコントロールが選択肢となります。

今回はフォームコントロールに焦点を当てていますが、ActiveXコントロールも同様に「開発」タブの「挿入」メニューから配置できます。ただし、設定方法やプロパティの管理は、フォームコントロールよりも詳細になります。

リストボックス・スクロールバー利用時の注意点

フォームコントロールを効果的に活用するためには、いくつかの注意点を理解しておくことが重要です。

入力範囲・セルリンクの管理

入力範囲がずれる・消える

リストボックスの「入力範囲」に指定したセル範囲が、後からデータの追加・削除によってずれたり、意図せず消えたりすることがあります。これを防ぐためには、

  • 入力範囲のデータは、Excelテーブル機能を使って管理する
  • 入力範囲を固定せず、INDIRECT関数などを使って動的に参照させる(ただし、VBAなしでの設定は難しくなる場合がある)

といった対策が考えられます。

選択された値の取得方法

インデックス番号が分かりにくい

リストボックスの「セルリンク」には、選択された項目のインデックス番号が表示されます。この番号だけでは、どの項目が選択されたのか直感的に分かりにくい場合があります。

この問題を解決するために、前述したようにVLOOKUP関数やINDEX関数と組み合わせて、選択された項目名そのものを表示させるように設定することをおすすめします。

スクロールバーの数値設定の限界

最小値・最大値・単位の意図しない設定

スクロールバーの「最小値」「最大値」「単位」の設定を誤ると、意図した範囲や刻みで数値を設定できなくなります。

例えば、「最大値」を「10」に設定しておきながら、実際には「100」までの数値を入力したい場合、スクロールバーだけでは対応できません。このような場合は、

  • スクロールバーの最大値を必要な値に設定し直す
  • スクロールバーで得られた値を、数式でスケーリングする(例:「セルリンクの値」×10)

といった対応が必要です。

デザインと配置の最適化

シートレイアウトとの不整合

リストボックスやスクロールバーを配置する際は、シート全体のデザインやレイアウトとの調和を考慮しましょう。コントロールが大きすぎたり、不要な場所に配置されたりすると、シートが見づらくなります。

コントロールのサイズは、右クリックメニューの「コントロールの書式設定」→「サイズ」タブで調整できます。また、配置場所もドラッグして微調整することが可能です。

さらに、シートの保護機能と組み合わせることで、コントロール以外のセルが誤って変更されるのを防ぎ、より安全なデータ入力を促すこともできます。

まとめ

この記事では、Excelのフォームコントロール機能を用いて、リストボックスとスクロールバーをシート上に配置し、設定する手順を解説しました。

リストボックスを使えば、複数の選択肢からユーザーが容易に項目を選べるようになり、スクロールバーは数値範囲の直感的な指定を可能にします。

これらのフォームコントロールを使いこなすことで、Excelシートの操作性が格段に向上し、より効率的で分かりやすいデータ管理が実現できるでしょう。

ぜひ、ご自身の業務シートにこれらのコントロールを導入し、活用してみてください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】