[[20170626105900]] 『マクロエラー時の自動計算再開について』(キウイ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロエラー時の自動計算再開について』(キウイ)

はじめまして
下記のような自動計算をoffにしてmacro1が完了後自動計算をONにする
ような場合にMacro1でエラーが出た場合自動計算がoffのままになって
しまうのですがエラーで止まった場合でもONに戻すことは
可能でしょうか?

Sub Macro0()
'
' Macro0 Macro
'

    Application.Calculation = xlCalculationManual   

    Macro1

    Application.Calculation = xlCalculationAutomatic    

 End Sub

< 使用 Excel:Excel2013、使用 OS:unknown >


 まずエラーの原因が何かを知ることが先ですね。
(seiya) 2017/06/26(月) 11:19

エラー発生する肝心の部分を書いてくれていないので、適切なアドバイスができません。どんなエラーで止まっているのか、エラーコードやメッセージを教えてください。

どんなエラーであれ、エラー停止をExcel任せにせず、事前にロジックで検出し、エラー時処理を行ってから終了するようコーディングすれば、自動計算の設定を戻す事も簡単です。 例えば、計算に使うセルに無入力があり、0として計算され、0割のエラーになるなら、計算前にセル内容を調べれば良し。

または、ブックを開いた際に、自動的に xlCalculationAutomatic にする、という対応も考えられます。

更には、マクロを動かすのが貴方だけであり、通常時は滅多にエラー停止するものではない場合、原因解明のため、現状通り中断してしまうままでも良いようにも思います。 例えば、半角数字だけ想定していたのに全角数字が混じっていた、とかなら、元データを直せば済みますよね。
(???) 2017/06/26(月) 11:35


現状のエラーとしては計算時のオーバーフローです。
現状いい回避方法見つけれておらず直せればいいのですが・・・

現状マクロは構築途中で他のエラーが出てしまうかもしれないのですが
便利なので使える部分は使っていっており第三者が使うときもあるので
質問させていただいた内容が可能であればありがたいなと思い質問させ
ていただきました。

エラーが出ないマクロを組めれば一番いいのでしょうが素人なものですみません。

回答いただいた感じですとMacro1に組み込まないと
エラー時の自動計算ONは出来ないということでしょうか・・・
(キウイ) 2017/06/26(月) 11:56


 >現状のエラーとしては計算時のオーバーフローです
 >現状いい回避方法見つけれておらず直せればいいのですが・・・ 

 作成した人もVBAの知識があまりあるとは言えないのかな?

 そのようなコードなら、何をどのように計算したときにどのようなエラーが出るのか
 その他にもあるならこの際全て書き換えた方が後々のためになるのでは?
(seiya) 2017/06/26(月) 12:02

エラーがあっても、それを無視して続ける事は簡単にできます。しかしそれだと、計算できなくてエラーがあったのに、数字の合わないまま進んでしまうので、意味が無いでしょう。

オーバーフローならば、データ型が適していないとか、元データが間違えているとか、対策できるはず。 実際の式とデータを見せてもらえば、おそらく一目で問題点が見つかると思うのですが…。

とりあえず、マクロ内で変数をInteger型にしているものは、Long型に変えましょう。Long型でエラーになっているならば、Currency型やDouble型に変えましょう。
(???) 2017/06/26(月) 12:15


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.