0 以上の数値を指定して下さい。

先週は予期せぬトラブルが多かったため、ブログに纏めたいと思います。
もし同じ症状になった方がいたら、参考になったら良いな。
いくつかあるのですが、今日はエクセルでのエラーです。

Application.Calculation = xlCalculationManual


ほぼ毎日走らせてるマクロが、突然エラーを吐き出しました。
デバッグすると、処理速度を高めるために自動計算を手動に変えていた、
「Application.Calculation = xlCalculationManual」にてエラーが出るようになりました。
エラー内容はこんな感じ。


実行時エラー '1004' 0 以上の数値を指定して下さい。


「実行時エラー '1004' 0 以上の数値を指定して下さい。」とのことです。
…えッ???(゜Д゜ノ)ノ
そんなこと言われても…(笑)


因みにVBAの定数、「xlCalculationManual」には「-4135」が入ってます。
マイナスの値が入っているのですが、
一応プロパティにプラスの値を代入してみると、やはり同じ回答…。
0以上の数値って、一体何なんだよ!(笑)

メニューのオプション


全くもって原因が分からず、正常なブックと何が違うのか?
どのモジュールが原因なのか?どんな構文を書くとダメなのか?など、
多岐に渡り検証しました。
初めはモジュールが壊れたのかと思って中身のテキストだけコピーして、
新規モジュールを作成してペーストしたりしたのですが、マクロそのものは関係ないようでした。
手掛かりも無く、何となくエクセルのメニューにあるオプションを開いてみて、
各タブをクリックしてみると、不可解な現象が!


0 以上の数値を指定して下さい。


ここでも「0 以上の数値を指定して下さい。」が…(笑)
明らかにおかしいですね。

復旧方法


Google先生に聞いてもに同じ症例はありませんでしたし、
どうすれば良いのか分からないので、兎に角色々試してみた訳ですが、
何らかをきっかけに復旧することが分かりました。
その何らかを突き詰めていくと、
「正常なブックを開いた後、異常なブックを開くと、直る」ということでした。
この直った状態で上書き保存すれば、次回から単体で、異常だったブックを開いてもエラーになりません。


エクセルの詳しい仕様は分かりませんが、ブックに保存されてる初期設定情報が壊れてしまった、みたいな感じなんだと思います。
やれやれ、この件については参りました。



Microsoft Office Excel 2010 通常版 [パッケージ]

Microsoft Office Excel 2010 通常版 [パッケージ]