マクロを利用して各シートの行を非表示にしたいです。
下記のようにマクロを書いたのですが、実行すると1分ほどかかってしまいます。
マクロ初心者のため、どうしたら早く処理できるように変更できるかわかりません。
複数のシートを同時に実行したいです。
どうすれば早くなるでしょうか。
ご教授願います。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Sub sample6()
Application.ScreenUpdating = False
Dim LastRow As Long
Dim i As Long
Dim wst1 As Worksheet
Dim wst2 As Worksheet
Dim wst3 As Worksheet
Dim wst4 As Worksheet
Set wst1 = Worksheets("●")
Set wst2 = Worksheets("▲")
Set wst3 = Worksheets("■")
Set wst4 = Worksheets("★")
LastRow = Cells(Rows.Count, 7).End(xlUp).Row
For i = 28 To 418
If wst1.Cells(i, 7) = 0 Then
wst1.Rows(i).Hidden = True
End If
If wst2.Cells(i, 7) = 0 Then
wst2.Rows(i).Hidden = True
End If
If wst3.Cells(i, 7) = 0 Then
wst3.Rows(i).Hidden = True
End If
If wst4.Cells(i, 7) = 0 Then
wst4.Rows(i).Hidden = True
End If
Next i
Application.ScreenUpdating = True
End Sub
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
nunohiraさんの書いたマクロ自体に時間のかかる要素はないはずです。
時間がかかるは、そのシートに含まれる計算式の再計算が原因と思われます。
試しに、計算方法を「手動」にしてから、マクロを実行してみてください。
これにより、お望みのパフォーマンスが得られるようであれば、計算方法の
切り替えをマクロに組み込んで下さい。
No.1
- 回答日時:
以下でどうなりますか
Public Sub Samp1()
Dim v As Variant
Dim rng As Range
Dim i As Long
Application.ScreenUpdating = False
For Each v In Array("●", "▲", "■", "★")
With Worksheets(v)
Set rng = Nothing
For i = 28 To 418
If (.Cells(i, 7) = 0) Then
If (rng Is Nothing) Then
Set rng = .Cells(i, 7)
Else
Set rng = Union(rng, .Cells(i, 7))
End If
End If
Next
If (Not rng Is Nothing) Then
rng.EntireRow.Hidden = True
End If
End With
Next
Application.ScreenUpdating = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要 6 2022/09/08 16:41
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Excel(エクセル) vba 転記するときの最終行について 2 2022/09/03 09:31
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
エクセルVBAのEntireRow.Hiddenをスピードアップしたいのですが・・・。
Excel(エクセル)
-
〔Excel:VBA〕マクロの実行が異常に遅くなる
Excel(エクセル)
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
-
4
エクセルで特定の列が0表示の場合、その行を非表示にしたい
Excel(エクセル)
-
5
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
特定のセルが空白だったら、その行を非表示にしたい。。。
Visual Basic(VBA)
-
8
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
9
エクセルでエラーが出て困っています。
Excel(エクセル)
-
10
エクセルVBAのフォームを最前面にする方法を教えてください。
Visual Basic(VBA)
-
11
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
12
エクセル UserForm 呼び出しでフリーズしてしまいます
その他(Microsoft Office)
-
13
VBAを何回も作り直して、容量が増えた
Excel(エクセル)
-
14
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
15
screenupdatingが機能しなくて困ってます
Visual Basic(VBA)
-
16
EXCEL VBA 指定範囲内で特定の列に空白セルを含む行を非表示
Excel(エクセル)
-
17
EXCELマクロで、ある列の値が0の場合、非表示/表示ボタンで該当列を非表示切り替えしたいんです。
Excel(エクセル)
-
18
VBA コードを実行すると画面が真っ白になる
Visual Basic(VBA)
-
19
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
Excel・Word リサーチ機能を無...
-
Excel マクロ VBA プロシー...
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
ピボットテーブルでの毎回可変...
-
エクセルに張り付けた写真のフ...
-
VBAにて別ワークブック上の実行...
-
EXCELのVBAでRange("A1:C4")を...
-
TERA TERMを隠す方法
-
VBA アドインについて お詳しい...
-
Teraterm 1行空白を入れたい。
-
#defineの定数を文字列として読...
-
マクロ実行時、ユーザーフォー...
-
Excelで特定の文字のところで自...
-
エクセルマクロでワードの一ペ...
-
ExcelVBAでPDFを閉じるソース
-
Excel VBAからAccessマクロを実...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルで別のセルにあるふり...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
ExcelVBAでPDFを閉じるソース
-
EXCELのVBAでRange("A1:C4")を...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
マクロ実行時、ユーザーフォー...
-
Excelのマクロについて教えてく...
-
ソース内の行末に\\
おすすめ情報