• ベストアンサー

VB2010 LISTVIEW 計算

VB2010でLISTVIEWを使っています。 LISTVIEWの数字とLISTVIEW外のLABEL4の数字と合計してsuzuに格納したいのです。 Dim suzu As Long suzu = clng(Me.ListView1.Items(2).SubItems(3).Text) - clng(Me.ListView1.Items(3).SubItems(3).Text) + CLng(Me.Label4.Text) Me.ListView1.Items(4).SubItems(3).Text = CStr(Format(suzu, "#,0")) 実行させるとエラーとなります。エラーメッセージは次のようです。 「String "Label4" から型 'Long' への変換は無効です。」 トラブルシューティングのヒントを見ても対応方法が分かりません。 ご存知の方は、ご指導をお願いします。

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

  • ベストアンサー
noname#251971
noname#251971
回答No.3

○回答No.2の補足に対して 「1」と表示されない理由は、 おそらくですが、他のFormから値を持ってくる処理より先に、 計算処理が動いているからではないでしょうか。 # 計算処理で「1」を入れた後、別の処理で他のFormからの値に更新されている 最初の質問時のエラーも、 おそらく値をLABEL4に入れる前に計算しているため、 デフォルトの"Label4"という文字列のままなのかと思います。 ゼロが表示される理由は、 今まで出てきている情報だけでは、こちらではわかりません。 VBのソース表示上で、 たとえば計算式の行にカーソル(キャレット)を置いて キーボードの F9 を押すとブレークポイントを設定することができます。 他Formから値を持ってくる処理や計算処理などに複数ブレークポイントを設定し、 デバッグ実行を行うとブレークポイント箇所で停止しますので、 処理の順番等を確認してみてください。 # 停止した後 F5 を押せば続きの処理が実行されます。 # トップメニューの[デバッグ]の中の項目を見るとキーとの対応が分かると思います。 また、ブレークポイントで実行が停止している状態では、 変数にマウスポインタを合わせれば値がポップアップ表示されますし、 「ローカル」ウィンドウや「ウォッチ」ウィンドウで値を表示させることができます。 # これらのウィンドウはメニュー[デバッグ]-[ウィンドウ]配下から開けます。 これらのデバッグ機能を活用して、問題を突き止めてみて下さい。

その他の回答 (2)

noname#251971
noname#251971
回答No.2

○回答No.1の補足に対して なるほど、では最初の質問で式の中に出てきている Me.Label4.Text に対しては プログラムの別の場所で値を入れているということですね? それでしたら「他のFormの数字を、このFormのlabel4に持ってきて」というところが うまくいっていないのではないでしょうか。 試しにですが、エラーが出る計算式の1行前で以下の行を入れれば、 LABEL4が 1 であるものとして計算ができますよね? Me.Label4.Text = "1" それができれば、やはりLABEL4に持ってくるところがうまくいっていないということなので、 持ってくる部分を見直してみて下さい。

totti1800
質問者

補足

ご指導をありがとうございます。 早速、Me.Label4.Text = "1" を直前の行に挿入してみました。 すると、エラーはでなくなり、label4には他のFormの指定した数字が表示されましたが、ListViewには合計数字が表示されません。ゼロが表示されていました。 「1」が表示されると思ったのですが、これは、どういうことなのでしょうか。 また、新たな疑問に遭遇しました。 すみません。このあたりもご指導ください。

noname#251971
noname#251971
回答No.1

エラーの内容を見ると、 Label4 のTextプロパティに設定している内容が ”Label4”という文字列であるように見受けられます。 # 数値でないので、変換できずエラーとなっている。 Label4 のTextプロパティが数値だけの内容であるかを確認してみてください。 また、Labelコントロールはユーザーが値を入力したりするコントロールではありませんが、 本当にLabelの内容を計算に利用したいのでしょうか? Labelの横に置いたテキストボックスなどだったりはしませんか?

totti1800
質問者

お礼

早々にご回答をありがとうございました。自宅に帰ってからご指摘のところをチェックしてみます。 とても参考になりました。

totti1800
質問者

補足

他のFormの数字を、このFormのlabel4に持ってきて、このFormのListViewの数字と合計して表示しようとしています。ご指摘のとおりLabel4に直接数字を書き込むことはありません。 ところで、Label4のTextプロパティーのチェックをしましたが、プロパティーのどこを見ればよいのか分かりません。文字の大きさとか色は変更できますが、数字だけのものにするのは、どこを直せば良いのでしょうか。 すみません。簡単なことが分かりません。

関連するQ&A

専門家に質問してみよう