dポイントプレゼントキャンペーン実施中!

VBA実行中に他の作業をする


Win7 にExcel2010を入れて使っているのですが、
VBAで数値計算プログラムを走らせつつ、画像ファイルを開いたり、ファイルコピーしたりなどを
行うことができます。

一方で同じプログラムでも
Win8 に入れたExcel2010では、ファイル操作しようとすると
マウスポインタが砂時計マークになり、数秒~10秒ていどもたつきます。

DoEventsを増やしてみてもあまり効果はありませんでした。

なぜこのようにOSによって違いみられるのでしょうか?
そしてWin8でもWin7と同様にVBA実行中に他の作業を行うにはどうしたら良いですか?

A 回答 (3件)

DoEventsではなくSleepを入れる。



'定義
Public Sub Sleep Lib "kernel32" (ByVal ミリ秒 As Long)

プログラムの所々に"Sleep 1"を入れる。

タスクマネージャで見ると、入れる前と、入れた後では
CPU使用率が全く異なることが分かると思います。

これはOS依存の問題ではなく、Windows下における
プログラムの「配慮」の問題です。
    • good
    • 0

なるほど、OS依存の何かがあるらしいと言うことですね。

マイクロソフト公式コミュニティにも、それっぽい質問が出ていました。ただこれはx64版での話のようですが。

http://goo.gl/6KuQc6

ただおそらく、似たようなことが起きていそうな気はします。上記のやり取りの中身が通用するならラッキーで、ダメな場合はどのマクロコードで重くなるか、コメントアウトしながら探っていくしかないと思います。あまり回答になっていなくて申し訳ないのですが。
    • good
    • 0

それは同一PCでの話ですか?もし別のPCでの話だったら、それはPC自身のスペックであったりセキュリティ対策ソフトの違いであったりといった、OS以外の要素が多大に影響してきますが。



8は使い勝手の悪評は高いけど、パフォーマンス面で酷評しているのは専らゲーマーだけで、一般ユーザーからそうした不満の声が上がっているような話はないと思います。むしろ8の方が7より若干軽いはず・・・と言うことで、今の情報だけではOSのせいとは考えにくいというのが一般論です。
    • good
    • 0
この回答へのお礼

win7は3年前に購入したノートPC、
win8は1年前に購入したデスクトップで
win8の方が圧倒的にスペックは高いです。

セキュリティソフトなど入っているソフトはほぼ同じです。

お礼日時:2014/06/02 20:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています