OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

EXCEL2000 VBAにてセルの入力制限とon errorについて

  • 暇なときにでも
  • 質問No.223705
  • 閲覧数88
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 12% (4/33)

数値のセルに文字列をいれるとVBAがこけてしまいます。
入寮制限をかけたいのですが、on errorのかけ方がわかりません。

どこでこけるかというと
acount(0) = Format(Cells(i + 1, 6).Value) * Format(Cells(i + 1, 7).Value)
acount(1) = acount(0) + acount(1) '原価*数量=部品原価
acount(2) = Format(Cells(i, 6).Value) * Format(Cells(i, 7).Value)
acount(3) = acount(2) + acount(3) '売上単価*数量=部品代
acount(4) = Format(Cells(i, 9).Value)
acount(5) = acount(4) + acount(5) '工賃(売上)
acount(6) = Format(Cells(i + 1, 9).Value)
acount(7) = acount(6) + acount(7) '工賃(原価)

というような計算式において、数値が入力されていないと
計算ができず、こけてしまいます。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル11

ベストアンサー率 33% (102/305)

On Error Goto ~は始めのほうで使います。

Sub Test_Sample()
Dim ??? as ????
On Error GoTo ErrorHandle

 '処理

Exit Sub

ErrorHandle:
 'エラーが発生した時の処理
End Sub
エラーが発生した時の処理は例えば、メッセージボックス等を表示してどこが間違ってるかをいったりするとか。
処理の中にStr="~が間違っています"というようなのを代入するコードをいれます。

また別の方法で、それが数値として使えるかどうか判断するには、IsNumeric関数を使います。

If IsNumeric(A) Then
msgbox("数値です")
else
msgbox("数値ではありません")
End If

というコードがあったとして、
A="123" だと「数値です」と表示され、
A="アイウ" だと「数値ではありません」と表示されます。
-PR-
-PR-
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ