コマンドボタンをクリックしたらリストボックスの数値の和を
ラベルに表示させたいのですが、どうすればよいのでしょうか?
どうしてもうまくいきません。
うーーん どこが上手くいかないのかわかりません。
1 コマンドボタンをクリックしたら
2 リストボックスの数値(内容)を知りたい
3 和の求め方
4 ラベルに表示させたいのですが
どれがわからないんでしょうか?
もしかして全部?
うまくいかないのはリストボックス内の数値の和の求め方です。
クリックしてもラベルには何も反応しないんです。
ラベルになにも表示されないって事ですか?
ラベルに表示させるときは、Captionに値をセットしてください。
リストボックスの数値(内容)を全部知る方法はご存知ですか?
できればコードを載せて下さい。
リストボックスの数値を全部知る方法はわかりません。
コマンドのコードは今のところ
private Sub Command1_Click()
Label1.Caption = ”合計” & Val(List1.Text)
End Sub
なんですが、間違っているとは思うんですけどどう直せばいいのか・・・
ListBoxコントロールの、ListCountプロパティとListプロパティを併用してください。
ListCountは、ListBoxに表示されている項目数を示し、
List(n)は、ListBoxのn番目の項目のテキストを返します。
Private Sub Command1_Click()
Dim i As Long
Dim LngSum As Long
LngSum = 0
For i = 0 To List1.ListCount
LngSum = LngSum + Val(Me.List1.List(i))
Next i
Me.Label1.Caption = "合計" & LngSum
End Sub
サンプルコードです。
こんな感じでよいですか?
> こんな感じでよいですか?
そんな感じで良いと思います。
でも、エラーが出ますよ。
とりあえずは、実行してみることです。
どこで出ましたか?
自分がやった時は出ませんで
空行でも大丈夫だったし。
失礼しました。
実行時エラーが発生すると思い込んでいましたが、
実際は発生しませんでしたね。
List1 の中に 100 と 200 の2つ数値が入っているとします。
その場合
List1.List(0) = "100"
List1.List(1) = "200"
List1.ListCount = 2
です。しかし、あなたのコードを見ると、
LngSum は、 0 + Val(List1.List(0)) + Val(List1.List(1)) + Val(List1.List(2))
のように計算しています。
ここで『 List1.List(2) はない』っていうエラーが発生すると思っていたのですが、
List の場合エラーは発生せず "" として扱われるみたいです。
私の勘違いです。混乱させてしまい、すみませんでした。
先ほどのコードはダメダメですね、すみません(ペコリ)
Private Sub Command1_Click()
Dim i As Long
Dim LngSum As Long
LngSum = Val(Me.List1.List(0))
For i = 1 To List1.ListCount - 1
Debug.Print Me.List1.ListIndex
LngSum = LngSum + Val(Me.List1.List(i))
Next i
Me.Label1.Caption = "合計" & LngSum
End Sub
こちらに訂正しました。
?
今度のコードだと、 100 と 200 の2つ数値が入っている場合
List1.List(0) = "100"
List1.List(1) = "200"
List1.ListCount = 2
LngSum は、 0 + Val(List1.List(1)) のようになって、
合計が 200 ってなりそうな気がするんですけど...
皆さま、どうもありがとうございます。
おかげで作動いたしました。
ツイート | ![]() |