
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>ところが、『行の高さ』を変更すると劇的に遅く(重く)なるのです!
>Excelの設定は変えていないし、PCもPen4 3GHz メモリ1Gなのでスペック的にも問題ないと思います。
>これって、Excelのバグかなんかでしょうか?
重くなっても時間が経てば復帰するなら不具合とは言えないですね。
Excel内部のデータの記録方法により、部分的な変更で良いか、
データ全体を書き換えないといけなくなるかで、処理の重さは変わってきますから。
ちなみに使用のWindowsとExcelのバージョンは?
Office 2000や2003だとメモリが充分にあってもExcelが扱えるサイズに限度がありますし、
2007では、その制限も大幅に緩和され処理の最適化もされていますが、メモリが多く必要になります。
2007なら2GB以上は必要かも知れません。
No.2
- 回答日時:
大体はNo.1の方が言われている通りで1命令で処理できるマクロを高速化できる余地はあまりありません。
後は気休め程度にしかならないかも知れませんが、画面更新を中止させるとか、そのセルを参照している計算式が多くあるなら再計算を一時中止させるくらいしか
Dim wst As Worksheet
'高速化の為に画面更新を中止させる
Application.ScreenUpdating = False
'ワークシートの再計算を停止する
For Each wst In ActiveWorkbook.Worksheets
wst.EnableCalculation = False
Next wst
Range("A1:G65536").ClearContents
'ワークシートの再計算を再開する
For Each wst In ActiveWorkbook.Worksheets
wst.EnableCalculation = true
Next wst
'高速化の為に画面更新を再開する
Application.ScreenUpdating = true
この回答への補足
yama1718さん --HV--さん ありがとうございます
再計算や画面更新の停止で少しは早くなった?かなっ?て感じです。
色々とTESTしてみたところ、
・計算式、オブジェクトはあまり影響がない(多少はありますが...)
・列幅も影響がない
ところが、『行の高さ』を変更すると劇的に遅く(重く)なるのです! Excelの設定は変えていないし、PCもPen4 3GHz メモリ1Gなのでスペック的にも問題ないと思います。
これって、Excelのバグかなんかでしょうか?
No.1
- 回答日時:
あくまで参考意見ですが、
手作業でその作業をしたときとマクロで対応したときの処理速度はどれくらい違うんでしょうか?
手作業でも同じになるなら、PCスペックの問題な気がします。
あえてやるなら、細かい範囲の繰り返し消去でしょうか。
for i = 1 to 7 ' a->g
range(cells(1,i),cells(65536,i)).ClearContents
next i
行単位でもフリーズするなら、さらに細かくコーディングするしかないかも。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【教えて!goo ウォッチ 人気記事】風水師直伝!住まいに幸運を呼び込む三つのポイント
記事を読む>>
-
Excel VBA データ削除の高速化
その他(Microsoft Office)
-
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
4
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
5
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
6
EXCEL マクロ 列の削除に時間がかかる
Excel(エクセル)
-
7
VBA 複数の行を高速で削除する方法
その他(プログラミング・Web制作)
-
8
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
9
UserForm1.Showでエラーになります。
工学
-
10
エクセルVBA Unionはなぜ遅い?
Visual Basic(VBA)
-
11
EXCELのVBAでLenB関数について
Excel(エクセル)
-
12
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
13
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
14
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
15
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
16
VBAで別モジュールへの変数の受け渡し方法
Visual Basic(VBA)
-
17
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
18
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
19
VBA 数値を文字列として貼付したい
Excel(エクセル)
-
20
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
異なるプログラミング言語を連...
-
5
c言語 〇×ゲーム
-
6
ポインターの横に輪が回ってる。
-
7
Excel(VBA)でSetTimer関数を使...
-
8
C言語 時刻差分の算出方法
-
9
再帰処理について
-
10
絶対パスの取得について
-
11
テキストファイルの空行をスキ...
-
12
SQLの速度をあげるには・・・
-
13
再帰呼び出しを使いますか?
-
14
小数点を含む数値かどうか判断...
-
15
Macターミナルで実行中のプログ...
-
16
緯度、経度の 10進法と 60進法...
-
17
数値英単語変換プログラム
-
18
指定したフォルダーを最前面表...
-
19
タスクマネージャーのプロセス...
-
20
c++でmatからvectorへの変換の...
おすすめ情報
公式facebook
公式twitter