VBAユーザーフォームの基本!ComboBox.AddItemの使い方と管理しやすいリスト作成

【業務効率化】VBA
スポンサーリンク

「あぁ…また取引先の名前に『株式会社』を入れ忘れた…。たった一文字のミスで書類を作り直しなんて、もう嫌だ!」

職場ではこんな声が聞こえてくることがあります。

特に、顧客名や商品名などの「決まった項目」を手入力するのは、ミスの温床です。そんな時、私たちの強い味方になるのがExcel VBAの「ComboBox(コンボボックス)」です。

これはいわば、ファミレスの注文タブレットのようなものです。決められたメニューから選ぶだけの状態にすれば、打ち間違いを完全に防ぐことができます。

今回は、初心者の方でも今日からすぐに使える「リスト追加」の方法を、ステップ別に分かりやすく解説していきます。

【業務効率化】VBAの記事を見る 

一番簡単!プロパティウィンドウで設定(コード不要)

プログラミングに少し苦手意識がある方は、まずはこの方法から試してみるのがおすすめです。

  1. ユーザーフォーム上のコンボボックスを選択します。
  2. 画面左下の「プロパティ」にある「RowSource」という欄を探してください。
  3. そこに「Sheet1!A1:A5」のように、リスト化したいデータが入力されているセル範囲を指定します。

これだけで、シートにあるデータが自動的にコンボボックスのリストに反映されます。とても簡単な操作ですが、これも立派な業務効率化の大きな一歩になります。

柔軟性抜群!AddItemメソッドを使う(基本のコード)

特定の条件の時だけ項目を増やしたい」といった柔軟な制御を行いたい場合は、VBAのコードを記述します。

※先ほどの「RowSource」を使う手法を試された方は、まず「RowSource」を空欄に戻しましょう。エラーになります。

Private Sub UserForm_Initialize()
    ' フォームが開くときにリストを追加します
   
    ' Withを使うと、ComboBox1という名前を何度も書かなくて済むので楽ちんです
    With ComboBox1
        .AddItem "営業部"     ' リストに「営業部」を追加
        .AddItem "事務部"     ' リストに「事務部」を追加
        .AddItem "開発部"     ' リストに「開発部」を追加
    End With
   
    ' 使用頻度が高い項目を初期値に設定しておくと、一手間省ける機会が増えます
    ComboBox1.ListIndex = 0 ' 0番目(営業部)を最初から選択状態にする
End Sub

実は私も、このAddItemを知らなかった頃に、全ての項目を力技でシートに書き出してRowSourceで繋いでいました。

後から項目が増えるたびにシートをいじるのが面倒で…。このコードを知った時は「なんてスマートなんだ!」と感動したのを覚えています。

大量データも一瞬!List プロパティで配列を使う

100個も200個もAddItemなんて書いてられない!」という場合は、セル範囲のデータを丸ごと一瞬で流し込む方法が有効です。

Private Sub UserForm_Initialize()
    ' A1セルからA100セルまでのデータを一気にリストにします
    ' RowSourceと似ていますが、コード内で制御できるので見やすいです
    ComboBox1.List = Range("A1:A100").Value
End Sub

頻繁に変更が発生する項目は、この方法のようにセルから動的に読み込む形にしておくのがおすすめです。VBAの知識がない同僚の方でも、シートの文字を書き換えるだけで簡単にメンテナンスができるようになります!

【業務効率化】VBAの記事を見る 


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、生産性を高めるITスキルについて発信しています。

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました