• 締切済み

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)の総和を求める。もしくは、警告を出す。そして、テキストボックスに何も入力されていない場合と文字が入力されている場合、エラーメッセージを出すプログラムを教えて下さい。

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

答えてしまうと勉強にならないのかもしれませんが、... 私だったらコンナカンジです。 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

kaitou29
質問者

お礼

ありがとうございます。これで先に進めそうです。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

こんなの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

kaitou29
質問者

お礼

教え方が教え方なんで…。ありがとうございました。本もきちんと読んでおきます。