VBAでリストボックスを使いこなすための完全ガイド

こんにちは!大阪市住之江区に拠点を置く会社『縁紡ぐ』の稲垣です。

当社は、Excel、ACCESS、RPAなどのシステム開発や既存ツールを使った業務効率化の提案、また、ITスキルアップのための教育に力を入れています。効率的なビジネス運営を目指している企業様、ITスキルの向上を図りたい企業や個人の方に、最適なご提案をさせていただきます。業務プロセスの改善とITスキルアップをサポートし、共に成長するパートナーでありたいと考えています。

VBAでリストボックスを使いこなすための完全ガイド

今回はVBA(Visual Basic for Applications)を使って、Excelでリストボックスを活用する方法について詳しく解説します。リストボックスを使うことで、ユーザーインターフェースが向上し、データ入力の効率もアップします。初心者の方でも理解しやすいように、基本から応用までをカバーしますので、ぜひ最後までご覧ください。

目次

リストボックスとは?

リストボックスは、複数の選択肢をリスト形式で表示し、ユーザーがその中から一つまたは複数の項目を選択できるコントロールです。ExcelのVBAを使うことで、このリストボックスを簡単に作成・操作することができます。

リストボックスの基本的な使い方

まずは基本的な使い方をご紹介します。

リストボックスをフォームに追加する方法

まずはリストボックスをフォームに追加する方法から説明します。

STEP
開発タブ ➔ Visual Basic or Alt + F11
STEP
挿入タブ ➔ ユーザーフォーム
STEP
ツールボックスから「リストボックス」を選択して、ユーザーフォーム上に配置

リストボックスにデータを追加する方法

リストボックスにデータを追加するには、以下のようなVBAコードを使用します。

Private Sub UserForm_Initialize()
    With Me.ListBox1
        .AddItem "選択肢1"
        .AddItem "選択肢2"
        .AddItem "選択肢3"
    End With
End Sub

ユーザーフォームのInitializeイベントに追加することで、フォームが表示される際にリストボックスにデータが追加されます。

リストボックスのイベント処理

リストボックスの選択が変更されたときに何か処理を行いたい場合、以下のようにイベントを使います。

Private Sub ListBox1_Change()
    MsgBox "選択された項目: " & Me.ListBox1.Value
End Sub

このコードをリストボックスのChangeイベントに追加することで、項目が選択されたときにメッセージボックスが表示されます。

応用編:複数選択可能なリストボックス

複数選択できるように設定を変更する方法

複数の項目を選択可能にするには、リストボックスの「MultiSelect」プロパティを設定します。

コードで設定を変更する場合。

Me.ListBox1.MultiSelect = fmMultiSelectMulti

これで、Ctrlキーを押しながらクリックすると複数選択ができるようになります。

複数選択された行を取得する方法

ボタンを追加して、ボタンを押下した時に選択されているものをメッセージボックスで表示するようにします。

Private Sub CommandButton1_Click()
    Dim i As Integer
    Dim selectedItems As String
    
    selectedItems = "選択された項目: "
    
    'リストボックスを1行ずつ処理
    For i = 0 To Me.ListBox1.ListCount - 1
        '選択されているかどうか
        If Me.ListBox1.Selected(i) Then
            selectedItems = selectedItems & Me.ListBox1.List(i) & ", "
        End If
    Next i
    
    ' 最後のカンマとスペースを削除
    If Len(selectedItems) > 0 Then
        selectedItems = Left(selectedItems, Len(selectedItems) - 2)
    End If
    
    MsgBox selectedItems
End Sub

列を複数表示する方法

STEP
リストのプロパティ ColumnCount を表示したい列数に変更
STEP
コードを変更する
    ListBox1.AddItem "Item2"
    ListBox1.List(ListBox1.ListCount - 1, 1) = "SubItem2_1"
    ListBox1.List(ListBox1.ListCount - 1, 2) = "SubItem2_2"
STEP
表示してみる

3つの情報を追加していても、ColumnCountが2の場合は、2つのみ表示される

複数列あった時に幅の調整方法

列幅を調整して見やすく調整しましょう。

STEP
リストのプロパティ ColumnWidths で幅を指定
STEP
表示してみる

割合での指定はありません。割合で行いたい場合は、コードでの対応になります

まとめ

リストボックスは、Excelのユーザーフォームで非常に便利なパーツです。基本的な使い方から応用までをマスターすることで、より直感的で使いやすいアプリを作成することができます。この記事が皆さんのお役に立てれば幸いです。

最後までお読みいただき、ありがとうございました。質問やコメントがあれば、ぜひお寄せください!


この記事が役に立ったと感じたら、シェアやいいねをお願いします!

記事を書いた人

稲垣

  • Excel、ACCESSでのシステム開発が得意
  • ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
  • 自家焙煎するほどのコーヒー好き
  • 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
  • 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
  • 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
  • お客様にとって本当に良いことかを第一に考える人
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次