No.3ベストアンサー
- 回答日時:
>ここでデバッグメッセージが出てしまいます。
それは、ご相談に掲示されている
>エクセルで全シート(約100シートあります)に同じ様なフォーマットのシートがあります。
という状況説明が、ウソか又は間違いなのが原因です。
具体的な正しい状況説明ができないのでしたら、回答したすべてのマクロについて
高速で最も簡単:
sub macro1()
on error resume next
以下同じ
中速:
sub macro2()
on error resume next
以下同じ
最低速:
sub macro3()
on error resume next
以下同じ
のように、それぞれ正しく間違えないように修正してください。
この回答への補足
再度のご回答どうもありがとうございました。
また状況説明が至らず申し訳ありませんでした。。
結果としまして、
「高速で最も簡単」に、
"sub macro1()
on error resume next"
を追加しまして、仰るとおりこれが最も高速に処理完了しました。
大感謝です!
他のコードだと数時間かかっていたところ、測っていませんでしたが、
20分かからずに終わっていると思います。
ちなみに、表示されている同じレイアウトのシートが97シートありますが、
他に非表示にしている違うレイアウトのシートが先頭に9シートありました。
当初だと非表示にしてあるシートで引っかかってしまったのでしょうか。
今回希望通りの処理が出来、大変満足しています。
どうもありがとうございました。
keithin様
今回希望通りの結果になり、大変助かりました。
他のコードだと数時間かかりましたので、
高速処理は本当に助かります。
無駄な手作業が省かれ、本当に感謝致します。
どうもありがとうございました。
No.2
- 回答日時:
>不要な行がそれぞれ大量にあり、困っております
高速で最も簡単:
sub macro1()
dim w as worksheet
for each w in worksheets
w.autofiltermode = false
w.range("A:A").autofilter field:=1, criteria1:="<>1"
next
end sub
sub macro1r()
dim w as worksheet
for each w in worksheets
w.autofiltermode = false
next
end sub
中速:
sub macro2()
dim w as worksheet
dim c as range
for each w in worksheets
w.rows.hidden = false
do
set c = w.range("A:A").find(what:=1, lookin:=xlvalues, lookat:=xlwhole)
if c is nothing then exit do
c.entirerow.hidden = true
loop
next
end sub
sub macro2r()
dim w as worksheet
for each w in worksheets
w.rows.hidden = false
next
end sub
最低速:
sub macro3()
dim w as worksheet
dim h as range
for each w in worksheets
for each h in w.range("A1:A" & w.range("A65536").end(xlup).row)
h.entirerow.hidden = h = 1
next
next
end sub
sub macro3r()
dim w as worksheet
for each w in worksheets
w.rows.hidden = false
next
end sub
この回答への補足
早速回答頂きましてどうもありがとうございました。
色々と試していますが、データが相当重い様です。
「高速で最も簡単」を実行させてみたいのですが、
w.range("A:A").autofilter field:=1, criteria1:="<>1"
ここでデバッグメッセージが出てしまいます。
再度お助け頂けますでしょうか?
よろしくお願い致します。
No.1
- 回答日時:
A列が1の時、行を非表示にする
Sub Macro1()
For i = 1 To Sheets.Count
For j = 1 To Sheets(i).Cells(Rows.Count, "A").End(xlUp).Row
If Sheets(i).Range("A" & j) = 1 Then
Sheets(i).Range("A" & j).EntireRow.Hidden = True
End If
Next j
Next i
End Sub
全シート元にもどす
Sub Macro2()
For i = 1 To Sheets.Count
Sheets(i).Cells.EntireRow.Hidden = False
Next i
End Sub
こんな感じです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/25 11:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Excel(エクセル) ExcelのVBAコードについて教えてください。 1 2022/06/17 15:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
Excel 日付を比較したら、同じ...
-
Outlookを立ち上げたらGoogleロ...
-
outlookのメールが固まってしま...
-
会社PCのメールが更新されない
-
【スプレッドシート】指定の日...
-
ウィンドウィズ メモ帳で日付だ...
-
英数字のみ全角から半角に変換
-
Excelで空白以外の値がある列の...
-
Microsoft Formsの「個人情報や...
-
microsoft office
-
MicrosoftOfficeについて質問で...
-
マイクロソフト 一時使用コード...
-
outlookで宛先が異なるメールを...
-
Outlookでの時間指定送信機能に...
-
【スプレドシート】目標達成の...
-
自分の専門分野の仕事。初見で...
-
Microsoft Officeを2台目のPCに...
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
【スプレッドシート】指定の日...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Office 2021 Professional Plus...
-
エクセルで例えば、関数を使っ...
-
Microsoft Formsの「個人情報や...
-
1つのPCに「Excel 2010」「Exc...
-
エクセルで例えば、A1に㈱ベ...
-
理由を教えてください。
-
エクセルでXLOOKUP関数...
-
マイクロソフト オフィスについて
-
VLOOKUP関数について
-
teams設定教えて下さい。 ①ビデ...
-
Googleのスプレッドシートでシ...
-
【Excel VBA】PDFを作成して,...
-
Microsoft365で写真をアルバム...
-
Outlook で宛先が複数の場合の人数
-
Excel テーブル内の空白行の削除
おすすめ情報