本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[XL]リストボックスで選択された項目の文字列を取得する方法

文書番号: 401685

最終更新日: 1998/02/10


この資料は以下の製品について記述したものです。


この記事は、以前は次の ID で公開されていました: JP401685

概要

本文書は、 Microsoft(R) Visual Basic(R) Programming System Applications
Edition (以下 VBA) でダイアログ ボックスおよびワークシート内のリストボッ
クスまたはドロップダウン リストボックスで選択された項目の文字列を取得する
ための方法を、サンプルモジュールと共に解説しています。

使用例

ダイアログ シート上の [書式] - [オブジェクト] コマンド - [コントロール]
パネル - [リンクするセル] テキストボックスでの指定では、選択されている
ものの位置番号 (何番目が選択されているか) しか取得することができません
が、VBA の ListIndex プロパティと List メソッドを組み合わせて使用する
ことで、選択されている文字列の内容を取得することができます。

1.「単一選択」リストボックス

「単一選択」のリストボックスやドロップダウン リストボックスで選択された項
目の文字列を取得するためには、List メソッドを使用します。この List メソッド
を使用するときに必要となる引数は項目の位置番号です。現在選択されている項目の 位置番号を取得するには、各オブジェクトの ListIndex プロパティで求めることが
可能です。

サンプル 1-1

次のサンプル モジュールでは、ダイアログ ボックス "Dialog1" を表示し、ダイ アログ ボックス内のリストボックスで選択された項目の文字列をワークシート
"Sheet1" のセル "$D$1" に入力しています。
  Sub DlgSamp()
      DialogSheets("Dialog1").Show
      Worksheets("Sheet1").Range("$D$1").Value = _
          DialogSheets("Dialog1").ListBoxes("リスト 4").List( _
          DialogSheets("Dialog1").ListBoxes("リスト 4").ListIndex)
  End Sub

サンプル 1-2

次のサンプルモジュールでは、ワークシート "Sheet1" 上に存在するドロップダウ ン リストボックス "ドロップ 1" で選択された項目の文字列をワークシート "Sheet1" のセル "$D$1" に入力しています。
ドロップダウン リストボックス "ドロップ 1" に以下のマクロを登録することに より、リストから項目が選択されるたびに、セル "$D$1" に文字列が代入されます。
  Sub DropSamp()
      Worksheets("sheet1").Range("$D$1").Value = _
          Worksheets("sheet1").DropDowns("ドロップ 1").List( _
          Worksheets("sheet1").DropDowns("ドロップ 1").ListIndex)
  End Sub

2.「複数選択」、「拡張選択」リストボックス

「複数選択」および「拡張選択」のリストボックスやドロップダウン リストボッ
クスで選択された項目の文字列を取得するためには、List メソッドを使用します。
この List メソッドを使用するときに必要となる引数は項目の位置番号です。現在選 択されている項目の位置番号を取得するには、各オブジェクトの Selected プロパ
ティで求めることが可能です。

サンプル 2-1

次のサンプル モジュールでは、ダイアログ ボックス "Dialog1" を表示し、ダイ アログ ボックス内のリストボックスで選択された項目すべての文字列を MsgBox 関
数を使用して表示しています。
  Sub MultiListSamp()
      Dim selectitem As Variant
      DialogSheets("dialog1").Show
      selectitem = DialogSheets("Dialog1"). _
          ListBoxes("リスト 1").Selected
      For i = 1 To DialogSheets("Dialog1"). _
          ListBoxes("リスト 1").ListCount
          If selectitem(i) = True Then
             MsgBox DialogSheets("Dialog2"). _
                ListBoxes("リスト 1").List(i)
          End If
      Next I
  End Sub

サンプル 2-2

次のサンプルモジュールでは、ワークシート "Sheet1" 上に存在するドロップダウ ン リストボックス "ドロップ 1" で選択された項目すべての文字列を MsgBox 関数 を使用して表示しています。
ドロップダウン リストボックス "ドロップ 1" に以下のマクロを登録することに より、リストから項目が選択されるたびに、MsgBox が表示されます。
  Sub MultiDropSamp()
      Dim selectitem As Variant
      selectitem = WorkSheets("Sheet1").DropDowns("ドロップ 1").Selected
      For i = 1 To WorkSheets("Sheet1"). _
          DropDowns("ドロップ 1").ListCount
          If selectitem(i) = True Then
            MsgBox WorkSheets("Sheet1"). _
                DropDowns("ドロップ 1").List(i)
          End If
      Next I
  End Sub

Keywords: KBHOWTO KB401685
Technology: kbExcel500 kbExcelSearch kbExcelWinSearch

inserted by FC2 system