![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAにショートカットキーの割り当て 3 2022/07/13 14:19
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Excel(エクセル) VBA 指定した列にある日時データから時間を削除する方法について 4 2022/04/14 11:17
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) VBA 文字列変換と指定した列にある日時データから時間を削除する方法について 2 2022/04/14 15:23
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
このQ&Aを見た人はこんなQ&Aも見ています
-
初めて見た映画を教えてください!
初めて見た映画を覚えていますか?
-
【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
【お題】・忍者がやってるYouTubeが炎上してしまった理由
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
VBA 複数の行を高速で削除する方法
その他(プログラミング・Web制作)
-
エクセルでの列、行の挿入、削除に時間がかかるようになったが・・。
Excel(エクセル)
-
VBA 複数の列を高速で削除する方法
Excel(エクセル)
-
-
4
エクセルVBA Unionはなぜ遅い?
Visual Basic(VBA)
-
5
エクセルVBAのEntireRow.Hiddenをスピードアップしたいのですが・・・。
Excel(エクセル)
-
6
エクセルで特定の列が0表示の場合、その行を非表示にしたい
Excel(エクセル)
-
7
エラーになってないのにVBAが中断される
Excel(エクセル)
-
8
ドロップダウンリスト 自動表示したい
Excel(エクセル)
-
9
VBAマクロ非表示が遅いので早くしたい
Excel(エクセル)
-
10
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
11
一行おきに貼り付ける 可能でしょうか
Visual Basic(VBA)
-
12
エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ
Visual Basic(VBA)
-
13
配列のペースト出力結果の書式について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1000円の3割の計算教えて下さい
-
5000万円×3%+6万円などの計算を...
-
WPSで#VALUE!を消す方法?
-
【Excel】 SUMPRODUCT関数の高速化
-
計算方法を教えてください
-
1000m2は何坪? 計算方法、教...
-
CPU稼働率を上げるには?
-
ExcelでLog10を自然数に直すには
-
iPhoneの関数電卓の使い方を教...
-
計算結果の上限値を設定したい
-
30代のデスクワークの女性が 毎...
-
111111×111111 の計算って 法則...
-
1包装当たり862kcalで、6個入っ...
-
数学で18/5という秒数が計算し...
-
漢字の変換(計るor図る)
-
10−3+5=の問題ですが、3+5を何...
-
excelのオートフィルタが遅いが...
-
(教えて下さい)ブルーレイディ...
-
アメフト。50m÷1,39=約...
-
会社を今年の4月10日に退職...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
1000円の3割の計算教えて下さい
-
ExcelでLog10を自然数に直すには
-
医療費の計算方法を教えてくだ...
-
【Excel】 SUMPRODUCT関数の高速化
-
iPhoneの関数電卓の使い方を教...
-
WEBのようにスクロールすると付...
-
油圧シリンダーの速度計算。
-
1350円の、2割五分増しと ...
-
漢字の変換(計るor図る)
-
1日目に1円 二日目に2円 三日目...
-
5000万円×3%+6万円などの計算を...
-
地積145m2何坪ですか
-
Excel タイムカードで、昼休み...
-
2.75時間を何時間何分に直せと...
-
270万円の6対4の計算式を教え...
-
土嚢1体で何m3入りますか?
-
ミカンの廃棄量
-
Excel 負の数のマイナス部分を...
-
エクセルの計算式が上書き保存...
-
excelで板取計算。1枚の板から...
おすすめ情報