|
WindowsXP, Excel2007を使っています。
Excelを長年使っており中級レベルぐらいですが、
ExcelVBA歴4ヶ月、独学で詰め込み学習中です。
常識的なことが分かっていないかもしれませんが、お手柔らかにお願いします。
アンケートの集計にExcelVBAを使おうとしています。
いくつかの細切れのプロシージャを作って、まとめて動かす作戦を考えました。
下のこんな感じです。
Sub 集計 ()
Application.Run "test.xlsm!BMI.BMI"
Application.Run "test.xlsm!check1.check1"
Application.Run "test.xlsm!check2.check2"
Application.Run "test.xlsm!check3.check3"
End Sub
ところが、一番上のプロシージャBMI(下にコードを書きました)がエラーで止まってしまうことがあります。
例えば、身長の所の回答が数字なら問題ないのですが、アンケートの回答をOCRで読むために誤認識により「?」マークなどが入ることがあるのです。
そうすると、
BMI = 体重 / (身長 * 0.01) ^ 2
の所で止まってしまいます。
こういったエラーが発生しても、そのエラーを無視して次のプロシージャを動かすという方法はありませんか?
PCが苦手な人に操作してもらう必要があるため、マクロが途中で止まってしまうという事態を極力避けたいのです。
とても困っています。良いアイディアをよろしくお願いいたします!
Sub BMI()
Dim BMI As Double
Dim 身長 As Variant
Dim 体重 As Variant
Dim sheetobj As Worksheet
Dim 判定 As String
Set sheetobj = ActiveWorkbook.Worksheets("エラー確認")
With sheetobj
身長 = Range("H4")
体重 = Range("I4")
BMI = 体重 / (身長 * 0.01) ^ 2
Range("G4") = BMI
判定 = "OK"
Range("G5").Interior.ColorIndex = 20
Range("G5") = 判定
End With
End Sub
|
|