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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- Excel(エクセル) [入力規則]のリストボックス内の“不揃いの林檎たち” 3 2022/09/15 18:32
- Excel(エクセル) エクセル 条件に合う日付に入力された時間数の合計したい 4 2022/06/17 22:18
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Excel(エクセル) win10でexcel2003は動かないのか 8 2023/07/20 10:15
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
VBA 複数の行を高速で削除する方法
その他(プログラミング・Web制作)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
5
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
8
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
9
エクセルファイルをオープンしたときの再計算について
Excel(エクセル)
-
10
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
11
DATE型変数を初期化する方法
Visual Basic(VBA)
-
12
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
13
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
14
EXCEL VBAのユーザーフォームに引数を渡す方法について
Excel(エクセル)
-
15
VBA 1次元配列を2次元に追加する
Visual Basic(VBA)
-
16
DoEventsがやはり分からない
Visual Basic(VBA)
-
17
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
18
Excel VBAが徐々に遅くなる
Excel(エクセル)
-
19
VBAで「致命的なエラー」が出ました。どのくらい致命的なんでしょうか?
Access(アクセス)
-
20
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
小数点を含む数値かどうか判断...
-
絶対パスの取得について
-
VBでの簡易電卓の作成(減算方...
-
Excel(VBA)でSetTimer関数を使...
-
C言語:関数を使うメリットとデ...
-
コンピュータの処理は主にCPUが...
-
あっち向いてホイのプログラム...
-
Excel VBAにて、2GB超の点群デ...
-
VBS でプログラムを先頭から再試行
-
DoEvents関数って何?
-
プログラム上のCPU稼働率低減に...
-
Excel VBA での処理時間計測結...
-
ノットイコールを教えて下さい
-
Excelでのセル内容の高速消去方法
-
散布図グラフの近似線追加後に...
-
C言語 時刻差分の算出方法
-
計算処理時間を出力したい!
-
テキストファイルの空行をスキ...
-
非同期プログラミングは必ずマ...
-
VB 電卓 メモリー機能
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでのセル内容の高速消去方法
-
DoEvents関数って何?
-
win10で、正確な待ち時間の作り方
-
小数点を含む数値かどうか判断...
-
SQLの速度をあげるには・・・
-
絶対パスの取得について
-
Excel VBAにて、2GB超の点群デ...
-
VBでの簡易電卓の作成(減算方...
-
C言語:関数を使うメリットとデ...
-
テキストファイルの空行をスキ...
-
プログラム上のCPU稼働率低減に...
-
Excel(VBA)でSetTimer関数を使...
-
ナップザック問題?をエクセル...
-
If Not c Is Nothing Then ~延...
-
プログラム 擬似コードとはどん...
-
基本情報技術者試験詳しい方へ...
-
ノットイコールを教えて下さい
-
符号付きにすべきか、符号なし...
-
C言語 時刻差分の算出方法
-
実行時のCPU使用率を増やしたい
おすすめ情報