- 締切済み
Excel VBAの割り算の記述に関して
各シートにA列とB列の計算した結果をC列に出力するようなExcel VBAの記述をしたいのですが、 シートAには、計算する個数を入力します。 開発タブよりフォーム コントロールのボタンを選択します。 ボタンを押すと シートBには、A列とB列のそれぞれの値の和の結果をC列に シートCには、A列とB列のそれぞれの値の差の結果をC列に シートDには、A列とB列のそれぞれの値の積の結果をC列に シートEには、A列とB列のそれぞれの値の商の結果をC列に シートEの割り算の計算ですが、小数点を出力したい。 割り算がうまく出力してくれません。"/"を使えば良いと思うのですが、異なる結果が出て困っています。以下の記述のどこが間違っているのでしょうか。 Sub 問題作成() Dim count As Long Dim input_training As Long Dim left_num As Long Dim right_num As Long Dim answer_num As Long input_training = Range("A1").Value ' 加算 Worksheets("SheetB").Range(("A2"), ("C100000")) = "" ' 減算 Worksheets("SheetC").Range(("A2"), ("C100000")) = "" ' 積 Worksheets("SheetD").Range(("A2"), ("C100000")) = "" ' 商 Worksheets("SheetE").Range(("A2"), ("C100000")) = "" Randomize For count = 1 To input_training left_num = Int(1000 * Rnd) right_num = Int(1000 * Rnd) answer_num = left_num + right_num Worksheets("SheetB").Cells(1 + count, 1) = left_num Worksheets("SheetB").Cells(1 + count, 2) = right_num Worksheets("SheetB").Cells(1 + count, 3) = answer_num Next ' 減算 For count = 1 To input_training left_num = Int(1000 * Rnd) right_num = Int(1000 * Rnd) answer_num = left_num - right_num Worksheets("SheetC").Cells(1 + count, 1) = left_num Worksheets("SheetC").Cells(1 + count, 2) = right_num Worksheets("SheetC").Cells(1 + count, 3) = answer_num Next ' 積 For count = 1 To input_training left_num = Int(1000 * Rnd) right_num = Int(1000 * Rnd) answer_num = left_num * right_num Worksheets("SheetD").Cells(1 + count, 1) = left_num Worksheets("SheetD").Cells(1 + count, 2) = right_num Worksheets("SheetD").Cells(1 + count, 3) = answer_num Next ' 商 For count = 1 To input_training left_num = Int(1000 * Rnd) right_num = Int(1000 * Rnd) answer_num = left_num / right_num Worksheets("SheetE").Cells(1 + count, 1) = left_num Worksheets("SheetE").Cells(1 + count, 2) = right_num Worksheets("SheetE").Cells(1 + count, 3) = answer_num Next End Sub
- みんなの回答 (2)
- 専門家の回答
お礼
早速、ご返答ありがとうございます。 さらに、有力なURLを教えていただきましてありがとうございます。