• ベストアンサー

EXCEL VBAの実行速度の違いについて

EXCEL 2002で作成したマクロの処理速度について質問です。 職場のネットワークで使用しており、サーバ上に保存してあるマクロを実行するのですが 同じ環境であるにも関わらず、私の端末だけマクロの処理速度が目に見えてわかるほど遅いのです。 DELL製 OPTIPLEX 745 WindowsXP SP2 OFFICE XP とパソコンは共通であり、使用するサーバーも同じです。 環境は全く同じといっても過言ではありません。 マクロはいくつかのブックをオープンし値にオートフィルターをかけて抽出。 その後、抽出した値を合計7個のグラフに貼り付けます。 この貼り付け時の速度が異常に遅いのです。 会社貸与のパソコンだけにシステムに関わる部分の設定はほぼ不可です。 何か対策など講じることは可能でしょうか。 ご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 たぶん、Excelの場合は、物理的なメモリとは関係ないと思います。Excelは、仮想メモリ上を使用していますので、HDDの状態もあまり影響受けませんが、逆に、VRAM周りなどに、直接影響を受けてしまいます。 >抽出した値を合計7個のグラフに貼り付けます。 かなり厳しい条件だとは思います。 どこかで常駐ソフトが、オンの状態のまま動いているかもしれません。また、IEがおかしな動きをしている可能性もあります。アンチウィルスソフトや、アンチスパイウェアが、災いしていることがあります。ある程度は、設定で換えられるはずです。 また、その判定は難しいかとは思いますが、スタートアップで、インターネットに繋がるもので、直接必要がないものは外してみるとよいと思います。次に、常駐しているもので、通常使わないものも外してみるとよいです。たとえば、pdf を作成するツールなどがあります。 それから、Excelの場合は、Personal.xls のマクロの整理、(某サイトでPersonal.xls に詰め込むような内容のものがありますが、あまり関心しません。) C:\Documents and Settings\<ユーザー名>\Application Data\Microsoft\Excel\XLSTART\ 中で、Personal.xls 以外のものは除去します。アドインも、通常使わないものは、外しておく習慣をつけるとよいです。 他は、マイコンピュータのローカルディスクから、右クリック-プロパティ-ディスク・クリーンアップをするとよいです。 特に、C:\Windows\Temp の中を掃除してきれいにすると、劇的に速くなることがあります。ここには、Excelを遅らせる原因の残骸ファイルがあります。また、デフォルトフォルダなどのExcelのエラーファイルも、たまっていたら除去してください。とかく、Excelがハングした後は、遅くなることが多いのは、これが原因です。他は、IE キャッシュ(IEから駆除)、ゴミ箱などもきれいにしてください。私が言えるのは、このぐらいです。

noname#244288
質問者

お礼

返事が遅れ大変申し訳ありません Wendy02さんの仰るとおりのことを実行したら、多少は処理速度の向上が確認できました でも、他人様のパソコンよりは遅いですね しかし、ほんの少しですけど、処理速度の向上が認められたので安心しました どうもありがとうございました

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • A98JED
  • ベストアンサー率28% (221/778)
回答No.2

メモリやハードディスクに余裕がないと遅くなることがあります。 またシステムリソースといって、 システムを管理する為に確保しておくメモリ領域を 多く使いきっていると、遅くなるときがあります。 仮想メモリといって一時的にハードディスクに書き込んで メモリ不足を補うという仕組みもあります。 メモリが少なすぎてハードディスクの読み書きが頻繁になれば 遅くなる原因になります。 複数のソフトを同時に実行しているとメモリもシステム領域も かなり消費しているでしょう。 ソフトは同時にたくさん実行せず、最低限のものだけにする。 メモリは増設すること、 ハードディスクはデフラグすることや高速タイプへの交換増設、 システムリソースは壁紙やデスクトップアイコンを減らすこと で改善できます。

noname#244288
質問者

お礼

都合上どうしても複数のソフトを起動してマクロを実行するときもありましたが 現在は極力起動ソフトを減らしてマクロを実行しています 物理的なHDDやメモリの増設は不可ですが、デフラグや壁紙を無くすことは 可能ですし、実行したら速度の向上が少しだけ感じられました どうもありがとうございました

全文を見る
すると、全ての回答が全文表示されます。
  • A98JED
  • ベストアンサー率28% (221/778)
回答No.1

メモリやハードディスクに余裕がないと遅くなることがあります。 またシステムリソースといって、 システムを管理する為に確保しておくメモリ領域を 多く使いきっていると、遅くなるときがあります。 仮想メモリといって一時的にハードディスクに書き込んで メモリ不足を補うという仕組みもあります。 メモリが少なすぎてハードディスクの読み書きが頻繁になれば 遅くなる原因になります。 メモリは増設すること、 ハードディスクはデフラグすることや高速タイプへの交換増設、 システムリソースは壁紙やデスクトップアイコンを減らすこと で改善できます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELマクロの処理速度

    いつもお世話になっております。 EXCELのマクロで、シートAのデータから条件に合致する値を検索してシートBにデータを自動で入力させています。 シートA、Bは同じブック内のシートです。 シートAはVisible = FALSEで隠したままで、シートBを隠した状態と表示した状態でマクロの処理速度に違いがある(具体的な時間は計測していませんが体感できるほどの差がある)のですがこのような処理速度の違いは起こるものなのでしょうか。 私が作成したマクロではシートBが表示されている方が処理速度が速いです。 もし、シートBを表示した方が速くなることが理論的に説明できるのなら、表示させて処理速度を少しでも速くしたいと思っています。 よろしくお願いします。

  • Excelマクロ が重いときと重くないときがある

    ボタンをクリックすると、 1、新しいブックを作成して、 2、ボタンのあるブック(元ブック)のデータの必要なものだけをコピペして、 3、オフセットを使用して、一定間隔で罫線を引く。 というマクロが組んであります。 その、元ブックのみが開いているときは瞬間で終わる処理が、 別ブックが開いていると、処理がとても遅くなります。 しかもその別ブックというのが、 特に元ブックとは関係のないもので、 マクロも組んでないものなんです。 また、その別ブック以外のブックは、 開いていても問題なく、早く処理してくれるのですが、 その別ブックが開いているときだけ処理が遅くなります。 マクロを実行しているファイルとまったく関係のないブックでも 開いていると、マクロの実行速度が遅くなることがあるのでしょうか。 ご存知のかた、みえましたら、 ご教授願います。

  • エクセル・VBA:値の取得 

    お世話になっております。 IというBOOK(以下B-I)に、IIというBOOK(以下B-II)からAUTOFILTERでB列に下記のように検索を掛け、ヒットした(検索値と一致した)もののC列の値をB-Iの特定の場所に貼り付けとしたいと思っております。(Search ValueはB-IIのB列で検索、Return ValueはB-IIのC列から、値の貼り付けはB-Iへ。) しかし、検索値に該当するのは1行とは限りません。このような場合、ヒットしたC列の最上行の値から、[Yes/No Message box]のようなものを使い、これを適用しますか?と順に聞いていくようにしたいのですが、どのようにマクロを書けばよいのかわかりません。補足資料として下記に記載しておきましたので、ご参照なさってください。 よろしくお願いいたします。 'B-IIの検索マクロ Workbook("B-II").Activate Sheets("Sheet1").select Worksheets("Sheet1").Cells(1, 1).AutoFilter Field:=2, Criteria1:="XXX" '中略(ここに何を書けばいいのかわかりません) Workbook("B-I").Acticate Sheets("Sheet1").select Cells(i,1).Select Selection.PasteSpecial -B-IIの例- |A列|B列|C列|…| |123|ABC|アイウ|…| |456|ABC|カキク|…| |789|ABC|サシス|…| 検索値"ABC"で検索したら上記の3行がヒットした例です。このような場合 Cells(n,3).value(n行3列目の値という意味)を使用しますか? YES > B-Iへ貼り付け > マクロの終了 NO > Cells(n+1,3).valueを使用しますか? YES > B-Iへ貼り付け > マクロの終了 NO > Cells(n+2,3).valueを使用しますか? YES > B-Iへ貼り付け > マクロの終了 NO > マクロ終了 としたいのです。

  • エクセル・マクロ オートフィルタからコピー

    Excel2000使用中です。 縦にたくさん項目が並んでいる表にオートフィルタを行い特定の項目のみを抽出し、抽出した項目のみを他の表にコピペをするという作業をマクロで行ないたいです。 ただし抽出した項目数は50~75項目で日によって変わりますが、抽出先の表は75項目で、75に足りない部分は空白です(空白は必須です)。 始めはオートフィルタをかけた後で上から75行コピーして貼り付けをしてマクロ設定してみたのですが、うまくいきません。 このように日々変化する項目があってもマクロを設定する方法はありますか?

  • エクセルVBAでフィルタ抽出部分のみのコピー

    エクセルVBAで売上帳を作成していますが、オートフィルタでデータ抽出した後、表示されている行のみをコピーして別シートに貼りつけるにはどうすればよいのでしょう? 別シートは指定したセルに値のみの貼り付けをしたいと思っています。 宜しくお願いします。

  • マクロを実行するとフリーズしてしまう。

    マクロを実行するとフリーズしてしまいます。 パソコンが原因なのでしょうか? マクロは Sub 抽出() ' '「貼り付け」シートを'一度全てクリアする Sheets("貼り付け").Select Cells.Select Selection.Clear '「元」シートを選択 Sheets("元").Select 'フィルタかけなおし Rows("1:1").Select Selection.AutoFilter Selection.AutoFilter '’抽出前「*」選択 Selection.AutoFilter Field:=1, Criteria1:="~*" '全て選択してコピー Cells.Select Application.CutCopyMode = False Selection.Copy '「元」を貼り付ける Sheets("貼り付け").Select Cells.Select ActiveSheet.Paste 'フォントを「9」 With Selection.Font .Size = 9 End With End Sub です。 パソコンのスペックは celeron&reg; cpu3.20GHz 3.19GHz 1GB RAM です。 最近VBAを覚え始めたばかりな者です。 仕事のデータではもっと複雑なマクロを実行していてもパソコンはなんともないので マクロに原因があるのではなくパソコンに原因があるのでしょうか? (上記のマクロを実行しているのは自宅のPCです) よろしくお願いします。

  • 【Excel VBA】ループについて

    Excel2003を使用しています。 2つのBook間でのループはできるのでしょうか? 下記のようにBook1のデータをBook2へ値のみコピーしたいのですが。。。  Book1のSheet1     Book2のSheet1   T7:T23          L19   U7:U23          L59   V7:V23          L99    :              :    :              :   AM7:AM23        L779 マクロ勉強中ですので、まず、マクロの記録をとってみたのですが、同じ処理の繰り返しなので、ループかな?と思い、参考書や似たような処理のコードを見たりしながら、あれこれ考えていたら、頭が混乱してきてしまいました(>_<) 2つのBook間では難しい(面倒)ならば、同じBookに変更することも考えています。 よろしくお願いします。

  • Excel2003VBAご教示ください。

    お世話になっております。 今 扱っている資料に手作業でマクロを登録しました。 _______________________________ Option Explicit Sub ●●用() ' ' ●●用 Macro ' 12月1月の店舗を抽出し新しいブックに移動する。 ' ' Selection.AutoFilter Field:=3, Criteria1:="=12月", Operator:=xlOr, _ Criteria2:="=1月" Selection.AutoFilter Field:=8, Criteria1:="(店名)" Range("A4:W2076").Select Range("A86").Activate Selection.Copy Sheets.Add ActiveSheet.Paste Application.CutCopyMode = False Sheets("Sheet1").Select Sheets("Sheet1").Move End Sub ________________________________ 上記は見たままのフィルタを使って 条件を2つ付けて絞って表全体を選択してコピーをし新しいシートを挿入して、そこに貼り付け そのシートを新しいブックに移動するという 見たまんまの作業ですが よくよく考えたら「フィルタを絞ったまま広げてないなぁ」と思い、 _____________________________ Option Explicit Sub フィルタ解除() ' ' フィルタ解除 Macro ' ●●用に抽出したフィルタの解除 ' ' Selection.AutoFilter Field:=3 Selection.AutoFilter Field:=8 Range("A5").Select ActiveWorkbook.Save End Sub ________________________________ 2つ目のマクロとして、これもまた見たままなのですが広げてセルをホームポジション(?)に移動させ、 上書き保存をするというマクロを別のモジュールで作成しました。 そこで質問なのですが、 ・上記2つのマクロは1つにまとめる事は可能でしょうか。 というのも1つめのマクロで新しいブックがアクティブになっているようで その直後に2つめのマクロをそのまま貼り付けたら 「実行時」か「コンパイル」どちらかのエラーがでそうだな。 と思い質問させていただきました。 2つ目の質問として ・新しいブックに名前を付けてデスクトップに保存までしておけば良かったなぁ と思いましたので それも合わせてご教示いただければと思いました。 まだVBAの勉強を始めたばかりですが 宜しくお願い致します。

  • アクセスのフィルタについて

    アクセスのフォーム[フォーム1]にフィルタをかける処理についてですが、入力欄の一つ[データ1]に値が入力されていないものだけを抽出する処理をマクロで行いたいと思っておりますが、上手くいきません。(何も抽出されない) フィルタの命令文を下記で書いておりますが、間違っているでしょうか。 Forms![フォーム1]![データ1] = Null

  • エクセルのオートフィルターの活用を教えて下さい

    1.エクセルでオートフィルターを使って抽出したデータをコピーし   新規ファイルに形式を選択し貼り付け「値」OKをチェック。 2.新規修正されたデータを元のオートフィルター状態のデータに簡単  にコピー貼り付けでしょうか?

専門家に質問してみよう