複数の値を.AddItemで作りたい【VBA】

目次

環境

Windowsの仕様

エディション:Windows 10 Pro

バージョン:20H2

経緯

VBAを使って、ユーザーフォームを作っていました。プルダウンを使って、値を選択するときに私は、

「.AddItem」を使って、値を選択できるようにしていましたが、選択する値が増える度に、「.AddItem」の行を増やして、美しくありませんでした。

なので、今回もっとうまくできないか勉強しました。

「ComboBox」を使って、Excelのセルを読み込む

「ComboBox」を使うとうまくいきました。

やり方です。

まず、ユーザーフォームから「表示」→「ツールボックス」を開きます。

ツールボックス中から「コンボボックス」を選んで、ユーザーフォームの中に貼ります。

次にプログラムです。

    Dim 最終行H As Integer
    Dim i As Integer
    最終行H = Worksheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row
    For i = 3 To 最終行H
    ComboBox1.AddItem Worksheets("sheet1").Range("H" & i).Value
    Next i

コードの説明をします。

1行目、変数を宣言してます。

2行目、変数の宣言しています。

3行目、変数「最終行H」にsheet1の最終行を取得しています。

4行目、For文です。「3行目から最終行まで」って意味です。

5行目、ここで「ComboBox」の命令です。sheet1のH列にある値を取得しています。

6行目、nextで4行目に戻ります。

まとめ

文章で伝えるのが難しかったのですが、

例えばこれを使って、

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

と繋げなくても、ExcelのsheetのH列に都道府県を書けば、プルダウンで選べるようになりますよ。

参考になれば、幸いです。

ここまで読んでいただきありがとうございました。

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

この記事を書いた人

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

目次