- ベストアンサー
エクセルのListBoxの2列目のデータをセルに!
ListBoxを複数行複数列にして、そのうちの2列目の各行にあるセルに取得した中身のデータを転記したいのですが、やり方が分かりません。基本的な質問で申し訳ないですが、アドバイスなど頂けると有難いです!
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>ListBoxを複数行複数列にして、そのうちの2列目の各行にあるセルに >取得した中身のデータを転記したい 「2列目の各行にあるセルに」とは?複数列のListBoxだし、横(列方向)に書いてみました。違っていれば縦に修正してください。 複数行複数列のListBoxの設定も質問内容? 以下のようにプロパティを設定してみてください。3列の例です。 添付図にありますが、RowSourceは表題部分を含みません。 ListBox1のプロパティ ColumnCount: 3 ColumnHead: True ColumnWidth: 50;50;50 RowSource: A11:C13 Width: 155 プロパティはこのくらいの設定でいいでしょう。 フォームには書き出すボタン「CommandButton1」を配置しています。 '// フォームのコードウインドウ Private Sub CommandButton1_Click() Dim lstNo As Integer '// リストの行 Dim wRow As Integer '// 書き出す行(1つ目のデータ) Dim wCol As Integer '// 書き出す列(1つ目のデータ) wRow = 3 wCol = 2 '// セルB3から書き出す例 lstNo = ListBox1.ListIndex If lstNo <> -1 Then With ListBox1 Cells(wRow, wCol) = .List(lstNo, 0) '// 品名 Cells(wRow, wCol + 1) = .List(lstNo, 1) '// 産地(これが2番目) Cells(wRow, wCol + 2) = .List(lstNo, 2) '// 価格 End With Else MsgBox "リストから選択してください。" End If End Sub
補足
回答ありがとうございます。曰く、プログラムの記述は人それぞれですね。恐らくですが、今回一連の質問の記述は書き直ししなければいけません。他所様のQ&Aでは修正が必要な場合が多く、全く体を為していません。このサイトのはモジュール的に使いやすさがあります。 …なんとかかんとか。 さて、当質問者として、、 ユーザーフォームにまとめてプログラミングしています。1つないし緊急措置用があれば事足ります。それを前提にプログラミングする際に再利用や修正が簡単な用にしたいので、出来る限り短くしていたい思いがあります。あと、プログラミング自体は質問者がしますが、評価外になります。 何はともあれ、有効なプログラム例ありがとうございます^^