VBAの処理速度


同じコードで同じファイルなのに、高性能のノートPCよりディスクトップPCのほうが処理速度が早いという現状が起きています。
なぜなのか、どうすれば改善するのかをご存じの方がいらっしゃれば回答お願いします。

具体的にはいくつかの判断をさせて完了したらカウントが1進むコードを書いています。
それをキャプチャソフトで録画しています。
ノートPCでは0.07秒あたり約2カウント進むのですが、
ディスクトプPCでは0.07秒あたり約5カウント進みます。
Excelのバージョン・設定は同じです。
自動計算等もどちらも切っています。

ディスクトップPC core2 メモリ3G VISTA 32ビット
ノートPC cor i7 メモリ8G    7 64ビット 

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/07/18 13:23:40
  • 終了:2011/07/19 13:22:37

ベストアンサー

id:SweetSmile1978 No.3

SweetSmile1978回答回数189ベストアンサー獲得回数292011/07/18 15:54:26

ポイント480pt

ノートの方が 64bit OSなのに対して office が 32bit で

VBA の実行が32bit で行われるためのオーバーヘッドかな。

にしては差がありすぎる肝するけど。

id:lupink

なるほど。そういう可能性もあるのですね!

共にSSDなのでちょっと入れ替えて実証してみます!

回答ありがとうございます。

2011/07/18 17:56:34

その他の回答(2件)

id:SHARUL No.1

SHARUL回答回数40ベストアンサー獲得回数32011/07/18 13:54:05

ポイント10pt

キャプチャソフトで録画しているとのことなので、

グラフィックボードの有無ではないでしょうか?

デスクトップの方にはそれなりのグラフィックボードが積まれているとか。

id:lupink

回答ありがとうございます。

ノートPCにはGT540M

ディスクトップPCには9800GT

とディスクトップの方が高性能VGAが搭載されていました。

早速、キャプチャソフトを使わず、10秒間で何カウント進むか表示するコードに書き換えて実証してみます。ありがとうございます。

2011/07/18 17:52:23
id:nyama1970 No.2

えぬやま回答回数1ベストアンサー獲得回数02011/07/18 14:53:59

ポイント10pt

1.キャプチャソフト 2.ビデオCodec 3.ビデオカード(ハードウェア) 4.ハードディスクの速度 のいずれかが原因でしょう。

1.については設定を見直してみてください。ただ、あまり効果はないでしょう。

2.については、入れ替えるのは少し難しいと思うので、そのままで。

3.については、ノートPCではチップセット内蔵グラフィックスでしょうから、たぶんどうしようもないでしょう。それだけメインメモリが多いなら、設定を変えてメモリをたくさん使うようにすれば速くなる可能性もありますが、違いが出てもわずかでしょう。

4.については、ノート用ハードディスクは通常、デスクトップ用よりも遅いので仕方ありません。どうしても速くしたいのなら、SSDに換装すれば目に見えて効果があるでしょう。

また、念のため、ノートの節電設定で低速運転されていないかチェックしてみてください。

id:lupink

1.ソフトも設定も1秒間のコマ数も全くおなじでした。

2.よくわからないです。

3.ビデオカードかもしれませんね。

4.ディスクトップはシリアルATA2でSSDをノートはシリアルATA3でSSDをつないでいます。

早速、キャプチャソフトを使わず、10秒間で何カウント進むか表示するコードに書き換えて実証してみます。ありがとうございます。

2011/07/18 17:54:48
id:SweetSmile1978 No.3

SweetSmile1978回答回数189ベストアンサー獲得回数292011/07/18 15:54:26ここでベストアンサー

ポイント480pt

ノートの方が 64bit OSなのに対して office が 32bit で

VBA の実行が32bit で行われるためのオーバーヘッドかな。

にしては差がありすぎる肝するけど。

id:lupink

なるほど。そういう可能性もあるのですね!

共にSSDなのでちょっと入れ替えて実証してみます!

回答ありがとうございます。

2011/07/18 17:56:34
  • id:lupink
    ノートPC
    ビデオカード GT540M
    HDDはシリアルATA3でSSD 510 (SSD,6Gbps,2.5インチ,リード500~450MB/s・ライト315~210MB/s)


    ディスクトップPC
    ビデオカード 9800GT
    HDDはシリアルATA2でm4 (SSD,6Gbps,2.5インチ,リード415MB/s・ライト260~95MB/s)

    このような構成です。
    回答いただいた内容を元に実証してみます。
  • id:cx20
    ベンチマークを取ってみると何か原因がつかめるかも知れません。

    ■ 窓の杜 - CrystalMark
    http://www.forest.impress.co.jp/lib/sys/hrdbnch/benchmark/crystalmark.html
    ■ 窓の杜 - 【NEWS】マルチコアCPU環境上で動作する「Excel 2007」のパフォーマンスを計測
    http://www.forest.impress.co.jp/article/2008/05/29/excel2007bench.html
  • id:lupink
    >cx20さん
    コメントありがとうございます。
    リソースモニターをみる限りHDDのアクセスが少なく、メモリ内で処理されているようでした。
  • id:lupink
    いろいろと検証してみたので報告します。


    Excel2010をアンインストールしてExcel2007でテストすると
    80%程高速化しました。
    SweetSmile1978さんが指摘してくださった、32bit云々が関係しているのかもしれません。

    ビデオカードですが、ディスクトップPCのビデオカードを以前使っていた古いカードに差し替えて試したのですが、結果変わらずでした。

    回答を締め切ります。
    ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません