
No.4ベストアンサー
- 回答日時:
全シートの9行目からが削除対象になります。
以下のマクロを標準モジュールに登録してください。
Option Explicit
Public Sub 全シートの行削除()
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In Worksheets
Call delete_rows(ws)
Next
Application.ScreenUpdating = True
MsgBox ("完了")
End Sub
Private Sub delete_rows(ByVal ws As Worksheet)
Dim wrow As Long
Dim maxrow As Long
Dim drows As Range
Dim rs As String
Dim str As String
Dim ctr As Long
maxrow = ws.Cells(Rows.Count, 1).End(xlUp).row 'sheetの最大行取得
ctr = 0
For wrow = 9 To maxrow
str = Left(ws.Cells(wrow, 1).Value, 5)
If str = "01-00" Or str = "02-00" Then
Else
rs = wrow & ":" & wrow
If ctr = 0 Then
Set drows = ws.Range(rs)
Else
Set drows = Union(drows, ws.Range(rs))
End If
ctr = ctr + 1
End If
Next
If ctr > 0 Then
drows.Delete
End If
End Sub
No.6
- 回答日時:
マクロの記録で自動生成したものをちょっと直しただけなので、かなり雑なコードですが・・・。
データ量も少なそうなので、こんなので十分でしょう!!
Sub Macro1()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Range("A8:A" & Rows.Count).AutoFilter Field:=1, Criteria1:="<>01-00*", Operator:=xlAnd, Criteria2:="<>02-00*"
ws.Range("A9:A" & Rows.Count).SpecialCells(xlCellTypeVisible).EntireRow.Delete
ws.Range("A8").AutoFilter
Next ws
End Sub
No.2
- 回答日時:
たかがシート300枚分です。
手作業で行いましょう。
まずは対象のシートをすべて選択します。
Ctrl + Shift + PageUp
または
Ctrl + Shift +PageDown
で連続した複数のシートを選択できるので活用してください。
その後1行目を挿入です。
対象のシートすべてのシートに行が追加されます。
その状態でA1セルに「a」とでも入力してください。
仮のタイトル行が出来上がりです。
次に作業するシートを1つだけを選択します。
Ctrl + PageUP
または
Ctrl + PageDown
でシートを選択すると良いでしょう。
ここからは各シートで繰り返しの作業になります。
Ctrl + Shift + L
これでフィルタを有効/無効にできます。
フィルタを有効にして、A1セルの▼をクリックし、フィルタの一覧から
01-00
02-00
を除外すれば、削除したいデータが入力された行と、追加した1行目だけが表示されます。
Ctrl + A
で、値や数式が入力されているセルの範囲を選択できますので、
あとは行削除するだけです。
Ctrl + PageUP
または
Ctrl + PageDown
で次に作業をするシートを選択しましょう。
・・・
これは、マウスを一切使わない手順です。
慣れれば30分もあれば余裕で終わりますよ。
(1分で10シートなんて余裕でしょ?)
なお、これはデータが入力されている行だけを削除……ではなく、タイトル行も含めて削除する手順です。
必要なら本来のタイトル行もフィルタで表示対象から外しておきましょう。
そんなわけで、マクロを作る時間で終わる作業ですので、マクロなんて不要ですよね。
No.1
- 回答日時:
おはようございます。
削除するのは大変なので、必要なものを表示して、それを新しいブックか、シートにコピーして作った方が早いかと思います。
削除するのは、処理に時間が掛かるので、コピーの方が早いかと。
因みに、sheetが300sheetって、1ブックに300シート?
それとも、幾つかブックがあって、その総数でしょうか?
VBAでの作業が良いかと思いますが、レイアウトは全て同じなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのワークシートが重く...
-
エクセル マクロを使って日々...
-
エクセルで入力シートから別シ...
-
VBA セルの値と同じ名前のシー...
-
エクセル シフト勤務表から、...
-
Excelで数値→文字列変換で指数...
-
Excelで行ごとコピー、同じ行を...
-
塗りつぶしの色をコピーするには
-
エクセルでグラフタイトルが折...
-
テキストボックス内の文字のふ...
-
C+vのvは英語で何の頭文字...
-
エクセル 指定した文字列を含...
-
勝手にリンクするテキストボッ...
-
数字がセルの左側に寄っていて...
-
エクセルにおける、グラフの指...
-
負のデータが含まれている場合...
-
たくさん作った同じ設定のグラ...
-
【Excel】貼り付けた画像がいつ...
-
パワーポイントに貼り付けたエ...
-
エクセルのグラフの一部拡大
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで入力シートから別シ...
-
エクセルのワークシートが重く...
-
VBA セルの値と同じ名前のシー...
-
Excel 複数のシートからグラフ...
-
ExcelVBAで、指定したシートに...
-
エクセル マクロを使って日々...
-
エクセルで入力→日付を自動判別...
-
Excel ハイパーリンク先のセル...
-
IF, ISNUMBER, INDIRECTの組み...
-
VBAのoffsetの動き方について教...
-
Excelの中央値の複数条件について
-
エクセルVBA:表の内容を担当者...
-
VBAでシート名をセルから取得し...
-
【Excel】VLOOKUP関数で複数の...
-
VBAを利用しオートフィルタで日...
-
excel vba 複雑な奴です
-
エクセル:複数シートのデータ...
-
【エクセルVBA】処理速度を...
-
エクセル シフト勤務表から、...
-
EXCEL VBA 一致しないデータの...
おすすめ情報
画像を付けたかったのですが、何度やっても投稿できませんでした。わかりにくいと思いますが、よろしくお願いします。