【VBA】ComboBoxに複数の値をまとめて追加する方法|セル範囲から読み込む

目次

使用環境

  • OS:Windows 10 Pro(バージョン:20H2)
  • ソフト:Microsoft Excel VBA

経緯

ユーザーフォームにプルダウンメニュー(ComboBox)を設置し、
複数の選択肢を手間なく追加したいと考えました。

これまでは、

ComboBox1.AddItem "東京"
ComboBox1.AddItem "埼玉"
ComboBox1.AddItem "神奈川"
...

のように、1項目ずつ.AddItemを繰り返して追加していたため、
選択肢が増えるたびにプログラムが冗長になり、管理も大変でした。

そこで今回は、Excelシートのセル範囲から一括で読み込んでComboBoxに追加する方法を学びました。

解決方法:Excelシートのセルから値を読み込んで追加する


コード例(Sheet1のH列から読み込んでComboBoxに追加)

Dim 最終行H As Long
Dim i As Long

最終行H = Worksheets("Sheet1").Cells(Rows.Count, 8).End(xlUp).Row

For i = 3 To 最終行H
    ComboBox1.AddItem Worksheets("Sheet1").Cells(i, 8).Value
Next i

コード解説

  • 1~2行目:変数最終行H(最終行番号)とカウンター変数iを宣言します。
  • 4行目:シート”Sheet1″のH列(列番号8)の最終行を取得します。
  • 6行目:For文で、3行目から最終行まで繰り返します。
  • 7行目:H列(列番号8)の値をComboBoxに1件ずつ追加します。
  • 8行目:次の行に進みます。

Range("H" & i)と書いても問題ありませんが、
より正確にはCells(i, 8)と「行・列」で指定する方法が推奨されます。


ポイントまとめ

  • ComboBox1.AddItemを繰り返し使う必要がなくなり、コードがスッキリします。
  • データ内容が変更された場合でも、シート上で修正するだけでOKになります。
  • 都道府県リスト製品リストなど、大量のデータを管理するときに特に便利です。

まとめ

VBAでComboBoxに大量のデータを追加したい場合は、

  • Excelシート上にリストを作成し
  • For文で一括読み込み
  • .AddItemで追加

という流れにすることで、プログラムを美しく、管理しやすく保つことができます。

これにより、メンテナンス性も大幅に向上しました。

ここまでお読みいただき、誠にありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次