• 締切済み

vista32bit SP2+EXCEL2007

vista 32bit で、SP2導入以降EXCEL2007の マクロ処理速度と、マクロ処理したシートの改ページプレビューでの 画面遷移速度が、ことごとく桁外れに遅くなります。 マクロ処理前は全シートがサクサク動くし、マクロ処理後でも マクロ処理対象外のシートでは、画面遷移もサクサク動きます。 原因や解決策を御存知の方がおられたら教えて下さい。 宜しくお願いします。

みんなの回答

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.3

> だいたい 20750K 程度です。それほど極端な増え方には思えないのですが。 この程度の変動ならば、メモリが不足して仮想メモリを使用しているのが原因ってのは除外かも。 ちなみに動作が遅い時、HDDのアクセスが多いって事も無いんでしょうか? webでVBA使うと遅くなるって類似の状況で情報収集すると、シートにグラフやオートシェイプがあり、セルのコピーでそれらをコピーしちゃってるのが原因で、遅くなったりシートが肥大するとかって事があるそうです。 パッと見、オートシェイプは無いように見えても、セルの高さを変更したなんかの拍子にひしゃげちゃって、罫線と一体化しちゃってるなんて事もあります。 ブックを閉じて開くと重いのが解消してるって事だと、ちょっと違うようにも思いますが。 セルの貼り付けを行うマクロって事ですが、動作を必要最小限にするため、「形式を指定して貼り付け」の「値」で貼り付けるようにしてみるとか。 -- ウィルススキャンなんかのソフトとの相性が悪いのかも?って事を仮定して、不要な常駐ソフトを停止してみるとか。 あるいは、電源投入時に「F8」キーをカタカタ押して入るセーフモードで動作確認し、他のソフトの影響かどうか切り分けとか。 Excelが起動時に読み込むテンプレートなんかのファイルに問題があると仮定し、一度Excelをセーフモードで起動して動作確認とか。 Microsoft Excel がエラーで起動できない場合の対処方法 http://support.microsoft.com/kb/883015/ja アドオンやツールバーをカスタマイズしていると、設定が飛んじゃいますが…。

marbee01
質問者

お礼

お手数をお掛けして申し訳ありません。 データの取り方と貼り付け方ですが、 取得するデータを持ったシートは、項目数がざっと十数列程度、 この中から、任意のレコード番号(1行目にあるインデックス)を選択して 該当する各項目のレコード(セルのValue)を配列変数に格納し それを貼り付けるシート(印刷帳票として使用)では最下行の下から 順に下向きにセルに入れるという処理です。 配列に入れるデータは全て文字列型です。 従って、セルそのもののコピペではなく、セルの中身のみを取り扱っています。 先日までは全く軽快に処理できていたのですが・・・ アドバイスの通り、セーフモードで確認してみようと思います。 ありがとうございました。

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

処理が重くなる原因が、Excelが無駄な計算しているとかであれば、計算方法を「手動」にする事で、問題の切り分けが出来るかも。 エクセル 2007 やエクセル 2010 でシートの計算結果が更新されない! http://support.microsoft.com/kb/968147/ja 自動計算しない、手動の状態で問題が再発するのなら、Excelが余計なメモリを使ってるとかを疑うとか。 タスクマネージャで、Excelが使用しているメモリ容量を確認、普段の状態と処理が重い状態を比較とか。 Vistaにどこまで対応しているか良く分かりませんが、メモリ解放を行うソフトを試してみるとか。 めもりーくりーなー http://crocro.com/pc/soft/mclean/index.html

marbee01
質問者

お礼

アドバイスありがとうございます。 BOOKを開いた直後のメモリ使用が、18148K。 マクロ処理を行っている時及び、処理終了でCPUが0%になった時で だいたい 20750K 程度です。それほど極端な増え方には思えないのですが。 これで画面遷移が極端にトロくなります。 めもりーくりーなーを試した方が良いでしょうか? それともこの程度の差では、このソフトより別の要因を 考えるべきでしょうか? あくまで、OSにSP2のパッチがあたる以前はサクサクいったのですが・・・

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

一旦ファイルを閉じる、開くすると、改善とかするんでしょうか? Excelは左上のA1セルから「最後のセル」までの範囲について、再計算を行います。 その処理の過程なんかで、最後のセルが広く設定され、結果として処理(空白であっても空白かどうかの確認など)の時間がかかるとか。 下記のような手順で、不要な空白を削除とか。 Excel 2002 で [最後のセル] の位置を修正する方法 http://support.microsoft.com/kb/405492/ja

marbee01
質問者

お礼

早速の回答ありがとうございます。 一旦ファイルを閉じる、開くすると改善されます。 マクロ処理は、1のシート上の任意のデータを、2のシートに貼り付ける。 大雑把に言えばそういう処理だけです。 ちなみに本日ただいまマクロ処理直後の最終セルは「B166」となっており、 データを貼り付けるセルは、Cells(End(Xlup).Row+1, 1)で選択しており、 現在無駄なセルはありません。 それと、改ページの挿入をしていなくても、或いは最終セルが「B10」でも 変わらず極端に遅くなります。しかもデータを貼り付けたシートのみ遅く、 データを取り出した(コピーした)シートは全く問題ありません。 こんな状況です。 又何か良い知恵がありましたら宜しくお願い致します。