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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
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
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
12
DATE型変数を初期化する方法
Visual Basic(VBA)
-
13
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
14
EXCEL VBAのユーザーフォームに引数を渡す方法について
Excel(エクセル)
-
15
DoEventsがやはり分からない
Visual Basic(VBA)
-
16
Excel VBAが徐々に遅くなる
Excel(エクセル)
-
17
VBAで「致命的なエラー」が出ました。どのくらい致命的なんでしょうか?
Access(アクセス)
-
18
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
19
UserForm1.Showでエラーになります。
工学
-
20
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel(VBA)でSetTimer関数を使...
-
【C言語 数独】 C言語で9×9の数...
-
C言語 時刻差分の算出方法
-
再帰呼び出しを使いますか?
-
Excelでのセル内容の高速消去方法
-
VBでの簡易電卓の作成(減算方...
-
C言語 再帰処理のメリットとデ...
-
DoEvents関数って何?
-
C言語:関数を使うメリットとデ...
-
小数点を含む数値かどうか判断...
-
SQLの速度をあげるには・・・
-
プログラム上のCPU稼働率低減に...
-
符号付きにすべきか、符号なし...
-
Excel VBA での処理時間計測結...
-
Excel VBAにて、2GB超の点群デ...
-
Cのプログラムに無性にイライラ...
-
VBS でプログラムを先頭から再試行
-
LINUX QT上でパソコンのシャッ...
-
Macターミナルで実行中のプログ...
-
ショッピング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでのセル内容の高速消去方法
-
DoEvents関数って何?
-
SQLの速度をあげるには・・・
-
小数点を含む数値かどうか判断...
-
win10で、正確な待ち時間の作り方
-
Excel(VBA)でSetTimer関数を使...
-
絶対パスの取得について
-
WebBrowserの読み込み待ちの処...
-
Excel VBAにて、2GB超の点群デ...
-
VBでの簡易電卓の作成(減算方...
-
テキストファイルの空行をスキ...
-
ノットイコールを教えて下さい
-
ナップザック問題?をエクセル...
-
If Not c Is Nothing Then ~延...
-
プログラム上のCPU稼働率低減に...
-
逆ポーランド記法における単項...
-
符号付きにすべきか、符号なし...
-
C言語:関数を使うメリットとデ...
-
C言語 時刻差分の算出方法
-
Excel VBA データ削除の高速化
おすすめ情報