OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

エクセルでのリストボックスの値の取得

  • すぐに回答を!
  • 質問No.241010
  • 閲覧数239
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (11/11)

早速ですが、エクセルでユーザーフォーム上にある
リストボックスの複数選択した時の値の取得方法を教えてください。

具体的にはアンケート集計をするためのフォームで
"Q6"というワークシートのA列に「項目名」、B列に「数」を
1行目から設定しています(「数」の初期値は"0"です)。

ユーザーフォームのリストボックスにはA列を表示させています。
そのユーザーフォーム上にあるコマンドボックスに
下記のようにコード記述しても、一番上の選択されたものしか"Q6"に
反映されません(2,3,4行目を選択しても2行目の「数」のみ+1になる)。

Private Sub CommandButton1_Click()
 For n = 0 To ListBox1.ListCount - 1
  If ListBox1.Selected(n) = True Then
   Worksheets("Q6").Cells(n + 1, 2) = _
   Worksheets("Q6").Cells(n + 1, 2) + 1
  End If
 Next n
End Sub

エクセルは97で、リストボックスのMultiSelectはMultiでもExtendedでもダメでした。

どなたかご存知の方がいらっしゃいましたらよろしくお願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 68% (791/1163)

Excel97 で質問のコードを動かしましたが特に問題ないようですが・・・

ListBox1のプロパティMultiSelect を
 fmMultiSelectMulti
 fmMultiSelectExtended
にして、両方とも問題なく動きますよ。プロパティの設定方法が何か違う?

変数の宣言を強制されていないようなので、
 Option Explicit
を先頭に書いてみたらどうでしょうか。nの宣言は必要になりますが、どこか別の場所で無効なプロパティの設定などがされているかもしれません。

ご参考に。
お礼コメント
jun4791

お礼率 100% (11/11)

早速の回答ありがとうございます。
試しにExcel2002でも動かしてみましたがダメでした。
そこでもう一度見直してみたところ、RowSourceにA列とB列を指定していました。
1~2ヶ月試行錯誤していたのでColumnCountを"1"にしただけで、
RowSourceの設定を忘れていたようです。

>どこか別の場所で無効なプロパティの設定などがされているかもしれません。
と言われて見直してみたので、nishi6さんのおかげでRowSourceの間違いに気がつきました。
まだ確認していませんが、たぶんこれでExcel97でもちゃんと動くと思います。
ありがとうございました。
投稿日時 - 2002-03-25 19:14:18
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ