
No.3ベストアンサー
- 回答日時:
こんばんは。
ちょっと面白そうなので試してみました。
私の場合、配列数式を1000行を数列入れまして、行ってみました。
ストップウォッチは、zap35さんのものを使わせていただきました。
何もない状態でやると、31.25秒かかります。
Application.Calculation = xlManual
を入れると、0.485 秒
Application.Calculation = xlManual
Application.ScreenUpdating = False
(画面切り替わり停止。Windowを最小化にする必要はありません。)
を入れると、逆に、0.500秒
原因は、おそらく、復帰の時に、逆に時間が取られるのだと思います。
Sub MyTest1()
Application.Calculation = xlManual
'Application.ScreenUpdating = False
Range("A:D,H:H,I:J,K:K,M:N,P:U,W:W,X:Y").Delete Shift:=xlToLeft
'Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
以下のマクロを使ってみると、
0.422 秒となります。ただし、条件によっても変わります。
Sub MyTest2()
Application.ScreenUpdating = False
Application.Calculation = xlManual
Range("E:G,L:L,O:O,V:V").Columns.Hidden = True
Range("A:Y").SpecialCells(xlCellTypeVisible).Delete
Cells.Columns.Hidden = False
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
「Application.ScreenUpdating」を使うかは迷いましたが、入れておきます。
変数を上手に使えば、もう少し速くなるかもしれませんが、一応、こんなところかしらね。ただ、計算式が入っていない状態で、すべてが遅いとしたら、フォントの表示などに問題があるかもしれません。そちらのほうは良く分かりません。
この回答への補足
ありがとうございます。
なんと5秒台に縮まりました。
どんなマクロ言語なのかは初心者なのでよく分かりませんが
これから勉強して理解していきたいと思っております。
ありがとうございました。
No.4
- 回答日時:
#02です。
A1:Z2000の全てのセルに全角文字30文字を入力し、usamimikさんのマクロを動かしたら381msでした。更に10000行まで値を入力しても大差はありませんでした。私の環境はPen4 1.2GHzのノートパソコンです。
>コードの問題とはどういうことでしょうか?
これは質問文に書かれているコード以外にも掲載されていないコードがあり、そちらの方で時間がかかっているのではないかと考えたのです。
>計算式は使っていません
とのことですが、結果が表示されない計算式が隠れていませんか?
新規のブックで値だけを入力してマクロ実行時間を計測すれば、何か違いが分かるかもしれませんよ。
ありがとうございます。
ためしに他のPCでマクロを実行してみたところ
ものすごく早くマクロが完了しました。
どうやら私のPCのせいだったようです。
ありがとうございました。
No.2
- 回答日時:
遅い? 処理時間を以下のマクロで計測してみました
私のノートパソコンでは、結果は10msでした。(精度は10ms程度ですが…)
Declare Function GetTickCount Lib "kernel32" () As Long
Sub Macro1()
Dim strt, stp As Long
strt = GetTickCount()
Range("A:D,H:H,I:J,K:K,M:N,P:U,W:W,X:Y").Select
Selection.Delete Shift:=xlToLeft
stp = GetTickCount()
MsgBox ("処理時間" & stp - strt & "ms")
End Sub
以下のようにSelectをやめれば多少速くなりますが、微々たるものだと思います
Sub Macro1()
Dim strt, stp As Long
Range("A:D,H:H,I:J,K:K,M:N,P:U,W:W,X:Y").Delete Shift:=xlToLeft
End Sub
遅いのは質問に書かれたコードの問題ではないのではないでしょうか?
この回答への補足
お答えありがとうございます。
ストップウォッチで計ってみたところ14秒かかっています。
zap35さんのMacro1で12秒でした。
Y列までの内、6列に文字が入っています。残すL列は長いもので
全角20文字ほど入力されています。
コードの問題とはどういうことでしょうか?
スペースの空きすぎどかですか?
No.1
- 回答日時:
列はY列まで、行は500行のデータを、かかれているマクロで削除するには1秒かかりません。
原因は別にあると思われます。たとえば、計算式が別シートにあるとかそのようなことはありませんか。計算式があるとデータが変化したときにいちいち再計算が始まり処理が遅れると思います。
自動計算を止めて、その後実行する方法はどうでしょう。
Application.Calculation = xlManual 計算を手動にします
処理の後
Application.Calculation = xlAutomatic 計算を自動にします。
そのほか、画面に表示しているとその処理にも時間がかかりますので、最小化してその後、削除処理を、終了後、最大化するとスピードアップもできます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
VBA 複数の列を高速で削除する方法
Excel(エクセル)
-
VBA 複数の行を高速で削除する方法
その他(プログラミング・Web制作)
-
-
4
VBAで文字列を数値に変換したい
Excel(エクセル)
-
5
Excelでのセル内容の高速消去方法
その他(プログラミング・Web制作)
-
6
エクセルVBA Unionはなぜ遅い?
Visual Basic(VBA)
-
7
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
8
エクセルでの列、行の挿入、削除に時間がかかるようになったが・・。
Excel(エクセル)
-
9
エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ
Visual Basic(VBA)
-
10
ExcelVBAでBookを開く時にファイル名の一部だけを指定で
Access(アクセス)
-
11
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
12
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
13
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
14
Excel VBA データ削除の高速化
その他(Microsoft Office)
-
15
【マクロ】名前を保存する際に、同じファイルがあった場合に、メッセージを表示
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
小学生の問題です
-
この計算方法を教えて頂きたい...
-
【Excel】 SUMPRODUCT関数の高速化
-
医療費の計算方法を教えてくだ...
-
1000円の3割の計算教えて下さい
-
WEBのようにスクロールすると付...
-
‘風立ちぬ’で出てきた計算尺は...
-
5000万円×3%+6万円などの計算を...
-
excelで板取計算。1枚の板から...
-
1包装当たり862kcalで、6個入っ...
-
土嚢1体で何m3入りますか?
-
生イースト:ドライイースト
-
ミカンの廃棄量
-
2.75時間を何時間何分に直せと...
-
エクセルの再計算について
-
職場の同期で可愛い女性がいま...
-
割の計算を教えてください 3150...
-
エクセル表計算:「保存」を押...
-
変調率の求め方が
-
地積145m2何坪ですか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
高校数学について
-
1000円の3割の計算教えて下さい
-
ExcelでLog10を自然数に直すには
-
真空管ステレオの増幅度について
-
WEBのようにスクロールすると付...
-
この計算方法を教えて頂きたい...
-
【Excel】 SUMPRODUCT関数の高速化
-
小学生の問題です
-
医療費の計算方法を教えてくだ...
-
カシオの計算機
-
メッツ
-
5フィート5インチって
-
1日目に1円 二日目に2円 三日目...
-
2.75時間を何時間何分に直せと...
-
二進数の除算引き戻し法につい...
-
米5キロ3800円のを買っています...
-
excelで板取計算。1枚の板から...
-
5000万円×3%+6万円などの計算を...
-
スポーツスターの各ギアの速度...
-
変調率の求め方が
おすすめ情報