Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 7 Professional : Excel 2010)
Auto_Openを使用したら処理が遅くなります。
投稿日時: 17/10/27 12:05:25
投稿者: ぶっちぎり

初心者です。
 
今まではエクセルを起動し、ボタンをクリックしてマクロを起動していましたが
毎日の作業なのでAuto_Openに変更したところ処理が非常に遅くなってしまいました。
記述が悪いのでしょうか。どなたかご教授願います。
 
【変更前】
下記をクリックして起動していました。
Sub Main_Proc()
   Call Start_time
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    '前回結果のクリア
    Call 結果クリア("結果1")
 
    以下省略
 
End Sub
  
【変更後】
Sub Auto_Open()
   Call Main_Proc
End Sub

回答
投稿日時: 17/10/27 14:12:34
投稿者: カリーニン

処理時間を計測しての結果でしょうか?
 
単にブックを開くのに時間が掛かってるだけ、という
ことはないですか?
ワークシート関数の再計算に時間が掛かってるとか。

投稿日時: 17/10/27 14:26:20
投稿者: ぶっちぎり

カリーニン さんの引用:
処理時間を計測しての結果でしょうか?
 
単にブックを開くのに時間が掛かってるだけ、という
ことはないですか?
ワークシート関数の再計算に時間が掛かってるとか。

 
時間は計測しています。
 
ボタンクリックとAuto_Openでは関数の再計算の動きが違うのでしょうか
 

回答
投稿日時: 17/10/27 14:48:27
投稿者: カリーニン

ボタンクリックでは、ブックを起動するときの再計算が
終わった状態から行っていると思います。
 
Auto_Openでは、再計算も含まれていると思います。
 
>時間は計測しています。
 
これは
Auto_Openのプロシージャ内で測定していますか?
 
※今から外出ですので、しばらくコメントできません。

回答
投稿日時: 17/10/27 15:57:31
投稿者: mattuwan44

単にファイルを開く時間+マクロを実行する時間
となっているから遅く感じるのでは?
 
あと、ジタバタするなら、
再計算を手動にしておく(マクロ内で)
とか、
閉じるときに上書き保存しないとか
(あるいは閉じるときにクリアして上書き保存)
かな?
 
ほかにもあるかも。。。
 
どうせなら、結果クリア("結果1") が何をしているかも含めて、
高速化の相談をしてみては?
 

回答
投稿日時: 17/10/27 18:02:34
投稿者: Abyss2

Timer使用をおすすめします。
 
【変更後】
Sub Auto_Open()
   application.ontime now, "Main_Proc"
End Sub

投稿日時: 17/10/27 19:17:02
投稿者: ぶっちぎり

みなさまありがとうございました。
 
再度マクロを見直ししてみます。
 
Auto_Openを使っただけで2分で終わっていたものが10分になってしまったので
投稿させていただきました。

回答
投稿日時: 17/10/27 20:39:57
投稿者: WinArrow
投稿者のウェブサイトに移動

Auto_Openを止めて
 
Workbook_Openイベントではどうなりますか?

投稿日時: 17/10/27 22:14:22
投稿者: ぶっちぎり

WinArrow さんの引用:
Auto_Openを止めて
 
Workbook_Openイベントではどうなりますか?

 
 
Auto_Openと同じ結果でした。

回答
投稿日時: 17/10/28 13:58:59
投稿者: WinArrow
投稿者のウェブサイトに移動

揮発性関数を多用していることはないでしょうか?

回答
投稿日時: 17/10/29 14:11:41
投稿者: LMK

こんにちは
 
何か原因があるのでしょうから、ところどころに msgbox を挿入するとかして、どこで時間がかかっているのかを特定されてはいかがですか?
 

回答
投稿日時: 17/10/29 17:17:35
投稿者: mattuwan44

>Auto_Openを使っただけで2分で終わっていたものが10分になってしまったので
 
メモリーがそもそも少ないのでは?
普段からたびたび応答なしにならないですか?
 
アプリケーションを起動するのに負荷がかかっているところに、
マクロでまた負荷かけたら辛そう。。。。

回答
投稿日時: 17/10/30 13:29:57
投稿者: mattuwan44

>http://officetanaka.net/excel/vba/tips/tips116.htm
 
提示されてない部分で↑このようなことしたら少しは軽く動かないですかね?

トピックに返信