- 締切済み
Access VBA 工夫
Access VBA 2つのテキストボックスに数字を入力して、3つ目のテキストボックスに総和を求めるプログラムを作りたいです。(X~Yまでの総和。 ) Private Sub btnWa_Click() Dim lX As Long Dim lY As Long Dim i As Long Dim lSouwa As Long lX = txtX.Value lY = txtY.Value lSouwa = 0 For i = lX to lY lSouwa = lSouwa + i Next i txtSouwa.value = lSouwa End Sub これに加えて逆にY~X(例えば30~10)の総和を求める。もしくは、警告を出す。そして、テキストボックスに何も入力されていない場合と文字が入力されている場合、エラーメッセージを出すプログラムを教えて下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- HohoPapa
- ベストアンサー率65% (455/693)
答えてしまうと勉強にならないのかもしれませんが、... 私だったらコンナカンジです。 Option Explicit Private Sub btnWa_Click() Dim lX As Long Dim lY As Long Dim lS As Long Dim i As Long Dim lSouwa As Long '入力値が数値? If IsNumeric(txtX.Value) = False Then MsgBox ("txtXが数値以外") Exit Sub End If If IsNumeric(txtY.Value) = False Then MsgBox ("txtYが数値以外") Exit Sub End If '小数? If Int(Val(txtX.Value)) <> Val(txtX.Value) Then MsgBox ("txtXが小数") Exit Sub End If If Int(Val(txtY.Value)) <> Val(txtY.Value) Then MsgBox ("txtYが小数") Exit Sub End If lX = Val(txtX.Value) lY = Val(txtY.Value) '逆転? lS = 1 If lX > lY Then lS = -1 'MsgBox ("txtX,txtYが逆転") 'Exit Sub End If lSouwa = 0 For i = lX To lY Step lS lSouwa = lSouwa + i Next i txtSouwa.Value = lSouwa End Sub
- imogasi
- ベストアンサー率27% (4737/17069)
こんなのAccessVBAの質問かな。学校の宿題の回答を、こういうコーナーに頼っているのではないか。ここの回答を、回答として出すと、生徒は判っておる、と誤解するのじゃないか? ーー 参考 >何も入力されていない場合 Googleで「access vba 空白」で照会して https://www.moug.net/tech/acvba/0050010.html アクセスの判りにくいところと思う。 >文字が入力されている場合 •IsNumeric関数の利用 https://tsware.jp/tips/tips_203.htm http://www.accessclub.jp/actips/tips_15.htm
お礼
教え方が教え方なんで…。ありがとうございました。本もきちんと読んでおきます。
お礼
ありがとうございます。これで先に進めそうです。