Excelのユーザーフォームコンボボックスに動的なリストを入力する - TechRepublic

Excelのユーザーフォームコンボボックスに動的なリストを入力する - TechRepublic

コンボボックスにデータを入力するのは難しくありませんが、常に変化するリストとコンボボックスを連携させるのは少し難しいです。コンボボックスに動的なリストを入力する方法を学びましょう。

ユーザーフォームのコンボボックスに静的なリストを入力するには、ある程度の知識とVBAコードが必要です。リストの更新に合わせてコンボボックスも更新するには、もう少し手間がかかります。リスト範囲を更新するたびに更新するか、動的なリストを作成することもできます。ここで言う動的なリストとは、データ項目のリストを含む動的な範囲のことです。

簡単な例を見てみましょう。次のユーザーフォームには、識別ラベルが付いたコンボボックスが1つあります。A1:A6(図には示されていませんが、「LookupLists」というシートの)リストを使ってコンボボックスに値を入力します。まず、リストの動的な範囲を次のように作成します。


  1. 「数式」タブをクリックし、「定義された名前」グループの「名前の定義」をクリックして、「新しい名前」ダイアログボックスを開きます。Excel 2003では、「挿入」メニューから「名前」を選択し、「定義」を選択します。
  2. 範囲の名前「ColorList」を入力します。
  3. 「参照先」コントロールに、次の式を入力します: =OFFSET(LookupLists!$A$2, 0, 0, COUNTA(LookupLists!$A:$A)-1,1)。LookupListsは、色のリストを含むシートの名前です。
  4. [OK]をクリックします。

式をご自身の作業に適応させる際は、範囲(LookupLists!$A$2)にヘッダーセルを含めないでください。リスト項目が実際に含まれるセルのみを指定してください。また、両方のセル参照は絶対参照で指定する必要があります。次に
、ユーザーフォームを次のように作成します。

  1. [Alt]+[F11]キーを押してVisual Basic Editor (VBE) を開きます。
  2. [挿入]メニューから[ユーザーフォーム]を選択します。
  3. ツールボックスを使用して、コンボボックスコントロールを挿入します。ユーザーフォームを選択すると、ツールボックスが表示されます。必要に応じて、「表示」メニューから「ツールボックス」を選択してください。
  4. ラベルコントロールを追加し、「Color」というテキストを入力しました。この手順は省略しても構いません。
  5. コンボ ボックス コントロールに cboColor という名前を付けます。

これで、コンボボックスにデータを入力するコードを追加する準備ができました。以下の手順に従ってください。

  1. ユーザーフォームをダブルクリックしてモジュールを開きます。
  2. 以下に示すサブプロシージャを入力します。
プライベートサブ UserForm_Initialize()

'カラーコンボボックスに入力します。

Dim rngColor を範囲として

Dim ws As ワークシート

ws = Worksheets("LookupLists") を設定します。

ws.Range("ColorList") 内の各 rngColor について

Me.cboColor.AddItem rngColor.Value

次のrngColor

終了サブ

コンボボックスの動作を確認するには、ユーザーフォームに戻り(モジュールを閉じて)、F5 キーを押して実行します。For Each ステートメントは、範囲 ColorList 内のデータ項目を使用してリストにデータを入力します。ユーザーフォームを閉じます。次に、ColorList に項目を追加し、コンボボックスのパフォーマンスを確認してみましょう。リストを含むシートに戻り、セル A7 に「White」と入力します。次に、VBE に戻り、ユーザーフォームをもう一度実行します。ご覧のとおり、範囲名 ColorList は新しいリスト項目 White を含むように自動的に調整されます。その後、コードは White を含むリスト全体をコンボボックスに入力しますが、変更は行われません。


例をシンプルにするため、データ入力作業は省略しました。実際のアプリケーションでは、コンボボックスで選択された値をデータ範囲にコピーする必要があるでしょう。そのためには追加のコードが必要です。ここでは、動的な範囲(リスト)の内容をコンボボックスに入力する方法のみを示しました。

記事をシェア
スーザン・ハーキンスの画像

スーザン・ハーキンス

スーザン・セールス・ハーキンスは、デスクトップソリューションを専門とするITコンサルタントです。以前は、世界最大の技術雑誌出版社であるコブ・グループの編集長を務めていました。

Tagged: