
エクセルマクロで単純処理を連発させているのですが、途中でフリーズてしまいます。大量処理する場合、フリーズを防ぐ方法はどのようなものがありますでしょうか?VBAに埋め込むとよいコードなどあれば教えてください。
コードのひとかたまりは下記のようなものです。
これをシートを替えて100連発ほどさせます。
Range("A1:Z1").Select...複雑な計算式がはいっています
Selection.Copy
Range("A1:K10000").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
NO.4です
途中でキーボードが壊れて不親切な書き込みになって
申し訳ございません
表記のVBAですと画面がちらつきますよね?
描画に時間がかかってしまうんです。
そこでマクロ開始時に最小化
完了時に最大化すると必ず早くなります。
それとマクロの記録で作成したものは
やはり効率が悪いんですね。
例えば
Range("A1:Z1").Select
Selection.Copy
や
Range("A1").Select
ActiveCell.FormulaR1C1=XXXXX
なんて記述されるものは
Range("A1:Z1").Copy
Range("A1").VALUE=XXXXX
と置き換えた方が速いのです。
また1つのセルの値を使いまわす時は
Range("B1").VALUE=Range("A1").VALUE
Range("B2").VALUE=Range("A1").VALUE
Range("B3").VALUE=Range("A1").VALUE
:
よりも
DIM myString AS STRING
myString=Range("A1").VALUE
Range("B1").VALUE=myString
Range("B2").VALUE=myString
Range("B3").VALUE=myString
:
が速いのです。
No.4
- 回答日時:
Application.WindowState = xlMinimized
Range("A1:Z1").Copy
Range("A1:K10000").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
100連発後
Application.WindowState = xlNormal
No.3
- 回答日時:
(1)エクセルが内部で1セルコピーするごとに、全セルの再計算をさせないことではないでしょうか。
多分エクセルは1セル値が変わると、他の全セルに影響がないかチェックして、影響がある部分は再計算するようですので。最後に一遍にやる方が能率が良いような気がするApplication.Calculation = xlManual
(2)VBAも(A)COPY方式と(B)値代入方式があると思う。
書式以外の値や式なら、代入方式で置換え可能で、その方が速いのでは。式の表現をVBA向けにしないと(変えないと)いけないが。
=A1+B1を
For i = 2 To 100
Cells(i, "C") = Cells(i, "A") + Cells(i, "B")
Next i
(3)1行ずつのコピーにする。
For i = 2 To 100
Cells(i - 1, "C").Copy
Cells(i, "C").PasteSpecial
Next i
今までの小生の思いこみに過ぎないかもしれません。エクセル処理内部のことも判っていないと言えないことなのですが、その辺不十分で、ご批判を乞いたい。
この質問は先日も出しませんでしたか、見たような気がする。
No.2
- 回答日時:
OS9.2.2以下の環境でしたらExcellに対する「割り当て
メモリ」を増やして見る。
OS-X環境でしたら、体験的にOffice.v.Xはどうも今一でしたから、Office2004にしてみる。
OS自体10.1以下は何か不安定でしたから、10.2(最新のOSは10.3.6で、来春10.4が出ますが)以上が安定しますよ。
根本的にはPowerMacG5がよいと思いますが。(私自身はG4-800で、最近ストレスを感じます)
ショップのデモを見ただけですが、CPUをG4からG5にすると64bit処理の影響か、かなり速くなってました。
一応Macという事で書きましたが、他のOSは分かりませんので悪しからず。
No.1
- 回答日時:
その仕事以外のことを、コンピュータにさせないことです。
また、katan_FXさんのようなコンピュータの使い方であれば、CPUはAthlonの64 FX プロセッサがいいでしょうねぇ。さて、OSは何でしょう?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
風俗店へ行く前のご飯
-
エクセルで空白セルを含む列の...
-
Excel 数値の前の「 ' 」を一括...
-
勃起する時って痛いんですか? ...
-
腕を見たら黄色くなってる部分...
-
2つの数値のうち、数値が小さい...
-
VLOOKUP関数を使用時、検索する...
-
増減表のプラスマイナスの符号...
-
レインボーシックスシージをし...
-
採血後の内出血 先週の金曜日に...
-
足がまだら模様になります。ど...
-
一番多く表示のある値(文字列...
-
MIN関数で空白セルを無視したい...
-
アクエリアスが苦く感じる
-
値が入っているときだけ計算結...
-
病院側から早く来てくださいと...
-
イタリアから帰国する際、肉製...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
値が入っているときだけ計算結...
-
彼女のことが好きすぎて彼女の...
-
尿検査前日に自慰行為した時の...
-
VLOOKUP関数を使用時、検索する...
-
Excel 数値の前の「 ' 」を一括...
-
精液の落とし方を教えてください
-
【Excelで「正弦波」のグラフを...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
精子に血が・・・
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
-
EXCELで条件付き書式で空白セル...
-
イタリアから帰国する際、肉製...
-
excelでsin二乗のやり方を教え...
-
腕を見たら黄色くなってる部分...
-
病院側から早く来てくださいと...
-
ワードのページ番号をもっと下...
おすすめ情報