エクセル2002を使ってデータ処理をしているのですが、
処理の途中で「リソース不足です」という表示がされ、作業がとまってしまいます。(その後実行し続けても、ほとんど「応答なし」になってしまいます。)
そこで、メモリ増設、あるいは、新たなPC導入を検討しているのですが、どれくらいのスペックでCPU、メモリ等を構成すればよいのか、経験不足の為にわかりません。最高のスペックで構成する手もありますが、費用をなるべく抑えたいため、下記の処理を遂行するのにだいたいどれくらいのスペックにすればよいのか、教えていただきたいです。
作業の内容ですが、
エクセルで、縦3000~5000行、横240列分ぐらいのデータを関数で計算させたり、コピーしたり、数式貼り付け・値貼り付けをしたりする作業を、VBAのFor文などで値を変えて、何十回もぐるぐる回します。
ちなみに現在使っているPCのスペックですが、自作機で
CPU Pentium4 2.41GHz
メモリ 768MB DDR-SDRAM
HDD 80GB
(ちなみにエクセルは2002)
です。
私より経験豊富な皆様のアドバイスが必要です。
ご回答よろしくお願いします。
No.3ベストアンサー
- 回答日時:
こんにちは。
当面の問題点と解決案を書いておきます。
※マクロについて
これは経験がないのですが、Selection が、めまぐるしく動いているようです。時々、Selection やSelect は、なくさなくてはならない指摘をする人がいますが、それだけでは、根拠のある説明にはなっていません。
Selectionは、Excel VBAでは、汎用性がありすぎることと、特殊な環境でエラーを出すことがあること、コードが1行で済むのが、何行にも渡り無駄が生じることがあるからです。ただし、今回の問題に直接関係しているか分からないです。
しかし、
Sheets("ROR").Select
Sheets("Rank").Select
Sheets("MA").Select
Sheets("MAK").Select
としていますが、本来、Select する必要性はありませんが、今のコードでは大手術になってしまいます。直せると思いますが、実際の画面のない状態では、手探り状態になってしまい手間が掛かりそうですから、今回の修正だけしてみてください。
特に、ループの中では、
>Application.ScreenUpdating = True
>Application.ScreenUpdating = False
こうしたい気持ちは良く分かるのですが、なるべく避けたほうがよいです。
おそらく、シートの Select と Application.ScreenUpdating = True で、ループの中で一気に、数式の計算を清算しようとしているような気がしています。
最初で、以下のように入れたら、ループの中には入れない。
ループの外で出す。
Sub Test1()
Application.ScreenUpdating = False
'Application.DisplayAlerts = False '←必要があるか分からない
Application.Calculation = xlManual
For ....
For ....
'ループ
Next Y
Next X
Application.Calculation = xlAutomatic
Application.ScreenUpdating = False
このようにしてみたら、いかがでしょうか?
'--------------------------------
>間違った認識のままメモリをやたらと増設せず
かなり細かい話になるのですが、Excelに関するメモリには、以下のようなものがあります。私が理解している範囲ですと、これらは、別々の割り当てのようです。多く取れるものもあれば、少なくて、すぐに底がついてしまうものとかあります。仮想メモリを使用しているのですが、あまり、私としては、この部分のシステムをいじりたくないですね。いじっても、問題になっている部分に関しては、あまり改良されないような気がします。
今回の場合は、「数式-」と「全シートの計算過程」という問題があると思います。
今回は、計算イベントを、Caluculation = xlManual で対処してみたのです。
○ Excelで消費するメモリ
・書式設定の種類
* 数式-特に揮発性関数が、計算イベント時に使用されるメモリ
・オブジェクト類(画像などのこと)
・フォントの種類
* 全シートの計算過程で使用するメモリ
・VBAのモジュールを格納する各々のプロシージャ
・ActiveX コントロールに使用されるメモリ
・アドイン、COM、プリンタドライバ
・Excelで使われるユーティリティソフト
・外部参照で使用されるメモリ
・VRAM メモリ
ご回答ありがとうございます。
Wendy02さんのアドバイスを参考にさせていただき、
試行錯誤してマクロを改良してやると、時間はかかるものの、処理を完遂することができました。
この度は、
ご丁寧に細かいところまでご指導いただき、感謝です。
ありがとうございました!!
No.2
- 回答日時:
こんばんは。
VBAと書かれていますが、掲示板に挙げられないほどのコードではありませんか?そういうコードは、典型的なミスがあることが多いです。
もし、出来れば、コードを出してみてください。
もしそうなると、最初から、作り直したほうがよいかもしれません。
>エクセルで、縦3000~5000行、横240列分ぐらいのデータを関数で計算させたり、コピーしたり、数式貼り付け・値貼り付けをしたりする作業を、VBAのFor文などで値を変えて、何十回もぐるぐる回します。
ループの中で、オブジェクトの設定(Set aaa =....) は、してはいませんか?
それと、解放せずに、どんどん重ねてしまうと「リソース不足」になります。
簡単なVBAのチェックは、プロシージャのひとつは、100行程度までに留めることです。それ以上は、なんらかに問題を抱えていることが多いです。
>データを関数で計算させたり、コピーしたり
データを計算というのはよいのですが、マクロの中で、数式がまとめられていないとトラブルを起こします。よほど自己流の人しか、そのようなことにはならないのですが、一度だけ、そういう相談を受けたことがあります。
VBE の数式が、常に、ワークシートとの関連性をチェックし始めますので、それだけでメモリの消費量がバカになりません。
誤解している方が多いのですが、Excelのメモリというのは、PCの物理的なスペックとは別です。それだけに、いくらメモリを積んでも直接は解決しません。それと、Excelの場合は、OSに依存するよりも、遥かに、ソフトのバージョンの影響が強いです。しかし、Excel2002は、基本的には、昔のものよりも改善されていますので、もう、その部分では、基本的なメモリの問題は発生しないと考えてよいです。
この回答への補足
文字数の制限があったため、再度投稿することになりました。
>誤解している方が多いのですが、Excelのメモリというのは、PCの物理的なスペックとは別です。それだけに、いくらメモリを積んでも直接は解決しません。それと、Excelの場合は、OSに依存するよりも、遥かに、ソフトのバージョンの影響が強いです。しかし、Excel2002は、基本的には、昔のものよりも改善されていますので、もう、その部分では、基本的なメモリの問題は発生しないと考えてよいです。
そうなんですね。間違った認識のままメモリをやたらと増設せずにすみました。感謝します。
ご回答ありがとうございます。
コードは下記の通り、至ってシンプルなものです。
Sub Test1()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets("ROR").Select '既存データ消去
Range("HW6:IB65536").ClearContents
For X = 10 To 30 Step 10
For Y = 5 To 20 Step 5
Sheets("ROR").Select
Range("HW2").Value = X
Range("HY2").Value = Y
Sheets("MA").Select
Range("B6:HR6").Copy
Range("B7").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteFormulas
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("MAK").Select
Range("B6:HR6").Copy
Range("B7").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteFormulas
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("Rank").Select
Range("B6:HR6").Copy
Range("B7").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteFormulas
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Sheets("ROR").Select
Range("B6:HU6").Copy
Range("B7").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteFormulas
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Application.Goto Reference:="Result"
Selection.Copy
Range("HW65536").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.ScreenUpdating = True
Application.ScreenUpdating = False
Next Y
Next X
End Sub
よろしくお願いします。
No.1
- 回答日時:
OSが98、MEではないのにリソース不足と出る場合は、メモリリークしているとか、常駐アプリや環境依存の問題。
マシンパワーで解決するものではないです。http://www.geocities.jp/le_grand_concierge/_geo_ …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン google chrome、イラストレーター、フォトショップの同時作業におすすめのPC構成 1 2022/10/19 14:23
- CPU・メモリ・マザーボード 2009年のHPのデスクトップPCはCPU交換等して活用できますか/する価値はありますか? 9 2022/09/27 16:43
- モニター・ディスプレイ フルHD6枚表示できるPCの最適構成は何でしょうか? 4 2022/11/18 19:07
- CPU・メモリ・マザーボード PCスペック(CPUとGPUのバランス)について ボトルネックチェッカー (https://babl 3 2022/10/30 15:33
- デスクトップパソコン 仕事で使うPC 10 2023/04/23 00:27
- 中古パソコン ゲーム用PCの購入を考えています スペックのアドバイスをください 2 2023/08/26 15:18
- CPU・メモリ・マザーボード ゲーミングPCのスペック、組み合わせについて PC初心者なので拙い文など箇条書きなどで理解しづらいか 5 2022/04/25 15:35
- ノートパソコン 自作にするか、メーカーか、オススメのノートPCをおしえてください。 5 2022/11/29 17:42
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- CPU・メモリ・マザーボード パソコン購入でCPUについて(長文ですいません。) 26 2022/04/05 15:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ヤフーニュース閲覧して戻るお...
-
pcのメモリ使用量がおかしいです
-
apexがラグい
-
デバイスマネージャ上のどこで...
-
メモリキャッシュとディスクキ...
-
DVDを見るために必要なスペ...
-
acer製 5349-BT824のノートパソ...
-
PCが急に重くなりました
-
現在、ファーウェイのメディア...
-
パソコンに必要なメモリ量とは?
-
ノートパソコンのメモリ使用率...
-
携帯(ドコモ)…メモリ不足表示
-
メモリの使用量が下がらない
-
WINDOWS98の最大メモリは32M...
-
XPが起動しない、バックアップ...
-
VirtualBox でWindows XP イン...
-
パソコンの起動について
-
ubuntu(linux)のシャットダウン...
-
パソコンを起動するとこの画面...
-
DELLのPCにPre-Boot Syst...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ヤフーニュース閲覧して戻るお...
-
デバイスマネージャ上のどこで...
-
ノートパソコンのメモリ使用率...
-
メモリキャッシュとディスクキ...
-
pcのメモリ使用量がおかしいです
-
apexがラグい
-
Win XPが認識できる最大メモリ...
-
PCのメモリをフルに使いたい(E...
-
WINDOWS98の最大メモリは32M...
-
物理メモリの使用割合が83%...
-
サーバー構築時のメモリ容量
-
エクセルでメモリ不足のエラー...
-
ディスクの空き容量またはメモ...
-
ファイルが開けない。
-
CドライブがSSDで、Dドライブの...
-
ピクセルエディターのエラー?
-
最近パソコンが遅い。。
-
vbaでメモリ不足となる原因は?
-
なぜ容量が勝手に減るんだ!?
-
特定のプロセスだけディスクへ...
おすすめ情報