こんにちわ。
今、以下のようなコードを実行した際に、エラーがでてしまい困っています。
**************************************************
Private Sub CommandButton3_Click()
'再計算を自動に設定
With Application
.Calculation = xlCalculationAutomatic
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
UserForm4.Hide
UserForm3.Show
End Sub
*************************************************
(この処理の前には、手動計算に設定しています。)
このコードでExcel2000では、問題なく処理がされるのですが、
Excel97では、
「Calculationメソッドは失敗しました。"_Application"オブジェクト」
というようなエラーが出ます。
コード的にはExcel2000で問題なく動いているので、
大丈夫だと思うのですが、Excel97でオブジェクトの指定の仕方や、自動計算のメソッドに上記コードだと問題があるのでしょうか?
どなたかわかる方、回答をお願い致します。
No.4ベストアンサー
- 回答日時:
1.マクロの実行がExcel2000で『○』、Excel97で『×』。
2.シート上にコマンドボタンを配置して、ボタンから質問のマクロを実行。
が質問の状況だと思いますが、Excel97で『○』にするには
対応方法 その1
ActiveCell.Activate
With Application
のように『ActiveCell.Activate』を追加する。
または、
対応方法 その2
CommandButton3のプロパティ TakeFocusOnClick を False にする。
どちらかにすればExcel97で動くはずです。
Excel97でエラーがでるのは、ボタンを押した時に、フォーカスがまだボタンにあるため発生しているはずです。
この状態にしておけば、Excel2000でも問題ないはずです。
また、xlAutomatic=xlCalculationAutomatic=-4105 なので、質問の本質とは関係ないでしょう。
ただ、マクロ記録すると『xlAutomatic』になるのは?です。
ご参考に。
回答ありがとうございます。
お礼が遅くなり申し訳ありません。
nishi6さんの記述を見て、”これで解決!”と思いましたが、
結果的には同じでした。
とても具体的な回答をいただけてうれしいです。
他の方のお礼にも書きましたが、
コードの記述位置を変えてみたところ、
エラーが出なくはなりました。
Excelのヴァージョンによって、少なからず癖があるのでしょうか・・・?
これからは2000メインで作りつづけてみようかと。(笑)
また、何かの際には助言を頂けると幸いです。
No.3
- 回答日時:
Calculationメソッドは詳しくないのですが
xlCalculationAutomaticは計算方式を自動に設定 で
xlAutomaticは自動再計算の再開 ですよね
単に代入している値を間違えているのでは。。。。
xlCalculationAutomatic:http://www6.plala.or.jp/MilkHouse/Frame201/Conte …
xlAutomatic:http://tokyo.cool.ne.jp/taquino/vba/tips.shtml
回答ありがとうございます。
お礼が遅くなり申し訳ありません。
URLも参考にさせていただきましたが、
コードの記述位置を変更することで、
エラーが出なくなりました。
プログラムの流れがおかしかったのかもしれません。
ですが、納得がいきません。(^_^;)
VBAは面白いですが、はまったら何をどうやればいいのか・・・
これを機にもうちょっと踏み込んでVBAを使ってみようと思っていますので、
また、何かの際には助言をお願いいたします。
No.2
- 回答日時:
一見同じような記述に見えますが、
以下の行だけ違っているのですが…
これでもダメだったのでしょうか?
.Calculation = xlAutomatic
この回答への補足
またまた回答ありがとうございます。
Excel97ではxlAitomaticとなるということでしょうか?
一応、Excel2000のヘルプだけは参照したのですが、
定数はxlCalculationAutomaticとなっていたもので、
そのまま流用していました。
お礼が遅くなりもうしわけありませんでした。
この回答にあるようにしてみても結果は同じでした。
コードの記述位置を変えてみたところ、
エラーを回避したようです。
やはり、何か腑に落ちません。(^_^;)
また何かの際には、助言をお願いいたします。
ありがとうございました。
No.1
- 回答日時:
With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With
Excel97,2000ともに
上記の記述で問題ないハズです。
この回答への補足
回答ありがとうございます
そうですよね・・・でも・・・
うぅ・・・エラーが取れない・・・
もう一度、フローから眺めてなおしてみます。
お礼が遅くなりもうしわけありませんでした。
コードの記述位置を変えてみたところ、
エラーを回避したようです。
ですが、何か腑に落ちません。(^_^;)
ひとまず、この質問は終了します。
また何かの際には、助言をお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) <excel vba>selenium basicのWebDriverの自動更新のエラーについて 1 2022/10/01 17:07
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Worksheets メソッドは失敗しました。のエラー処理のやり方
Visual Basic(VBA)
-
TextBoxコントロールを引数として渡すには?
その他(教育・科学・学問)
-
どこにもフォーカスを当てたくない
Access(アクセス)
-
-
4
UserForm1.Showでエラーになります。
工学
-
5
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
6
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
VBA Evaluate関数 型が一致しま...
-
VB.Net Object型 空かどうか
-
【JAVA】与えられた金額を貨幣...
-
Bean→JSPでの文字化け
-
文字列からダブルクオートの削除
-
C# UriFormatExceptionの回避
-
Excelでのエラー
-
C#で例外が発生したとき、例外...
-
スタックオーバーフローとは?
-
サーブレットからIMGタグへ画像...
-
Timestamp型への変換について(J...
-
0除算の例外処理ができない!!...
-
VB.NETで16進数が正しいかどう...
-
java, c# 追加失敗時の処理
-
SQLException getNextException()
-
C#の捕捉されない例外処理の対...
-
タトゥーや墨を入れる人の共通点
-
エクセルVBAで、条件に一致する...
-
変数名の付け方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
VB.Net Object型 空かどうか
-
Timestamp型への変換について(J...
-
連続する「\\」をひとつの「\\...
-
VB.NETで16進数が正しいかどう...
-
全角スペースのチェックについて
-
C# マルチスレッドにおける例外...
-
文字列からダブルクオートの削除
-
VBA Evaluate関数 型が一致しま...
-
例外ってIf文の中に入れますか...
-
C#の捕捉されない例外処理の対...
-
時間の取得
-
【JAVA】与えられた金額を貨幣...
-
nullで、return出来るのはどん...
-
String型の日付(2005/11/25)の...
-
サーブレットからJSPの呼び出し...
-
0除算の例外処理ができない!!...
-
VBA 400エラー 1004エラー
-
文字列が数字のみで構成されて...
-
数字か文字列かを判定する関数
おすすめ情報