
マクロを利用して各シートの行を非表示にしたいです。
下記のようにマクロを書いたのですが、実行すると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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
wordを起動した際に特定のペー...
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
ExcelのVBA。public変数の値が...
-
Excel マクロでShearePoint先の...
-
Excel マクロ VBA プロシー...
-
エクセルで縦に並んだデータを...
-
Excelのセル値に基づいて図形の...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
特定文字のある行の前に空白行...
-
Excel_マクロ_現在開いているシ...
-
エクセルに張り付けた写真のフ...
-
エクセルで特定の列が0表示の場...
-
Office365 (Excel) におけるシ...
-
エクセルマクロでワードの一ペ...
-
TeraTermマクロの文字列結合
-
マクロを使用して、A列にある文...
-
inlineとdefineの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
Excelのセル値に基づいて図形の...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
Excel_マクロ_現在開いているシ...
-
ExcelVBAでPDFを閉じるソース
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
エクセルで縦に並んだデータを...
-
TERA TERMを隠す方法
-
特定文字のある行の前に空白行...
-
Excel マクロでShearePoint先の...
-
UWLSの記録でマクロを作成し使...
-
エクセルで別のセルにあるふり...
-
マクロ実行時、ユーザーフォー...
-
ソース内の行末に\\
-
wordを起動した際に特定のペー...
おすすめ情報