#719 | リストボックスのすべての行と列のデータを取得するには? | フォーム、VBA | |
リストボックスコントロールでは、「列数」プロパティを指定することでその選択肢に複数列表示させることができます。そのような状態のとき、そのすべての行と列のデータをVBAのプログラムで取得する例です。 単に項目を選択することを目的としたリストボックスではそのような処理を必要とすることは少ないかもしれません。しかし何らかの条件でデータを抽出してその結果をリストボックスに表示しているようなとき、その抽出結果の内容を走査したいようなケースでは使えると思います。 次の例では、下図のようなフォームを使って動作させてみます。 ここでは、あらかじめ上部のリストボックス「lst商品」に5列のデータが表示されるようプロパティ設定してあります。また、コマンドボタン「cmd全行列データ取得」をクリックすると、そのすべての行と列のデータが取り出され、画面下のテキストボックス「txt結果」にその結果が”カンマ区切り”で表示されます。 コマンドボタンのクリック時イベントプロシージャは次の通りです。 Private Sub cmd全行列データ取得_Click() '[全行列データ取得]ボタンクリック時 Dim intRow As Integer Dim intCol As Integer Dim strData As String With Me!lst商品 '行方向のループ For intRow = 0 To .ListCount - 1 '列方向のループ For intCol = 0 To .ColumnCount - 1 '指定行列1つ分のデータ取得 strData = strData & .Column(intCol, intRow) & ", " Next intCol strData = strData & vbCrLf Next intRow End With Me!txt結果 = strData End Sub ポイント:
実行例:[全行列データ取得]ボタンクリック後 |
|||
|
Copyright © T'sWare All rights reserved |