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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Excel(エクセル) 【Excel質問】別シートにある複数の同型の表から、同じ行項目にある数字を集計する 4 2023/02/16 00:14
- Visual Basic(VBA) このプログラムなんですがsheetにデータを置いて表示できるようにしてありますがsheetに101を 2 2023/02/23 20:13
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- スーパー・コンビニ 「コンビニで エクセルをプリントアウト」することができますか? 8 2022/06/16 15:54
- 統計学 データ分析に関する問題です。 ある町である感染症の保菌者は0.5%である。保菌者を少なくとも1人含む 3 2022/07/28 19:56
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで入力シートから別シ...
-
Excel 複数のシートからグラフ...
-
Excelの中央値の複数条件について
-
エクセル自動の年月
-
エクセルのワークシートが重く...
-
エクセルで別のシートのデータ...
-
Excelの選択肢をポップアップリ...
-
ExcelVBAで、指定したシートに...
-
Excel ハイパーリンク先のセル...
-
VBA セルの値と同じ名前のシー...
-
VBAでシート名をセルから取得し...
-
エクセルファイルを軽くする方法
-
日付を基準にして別シート転記...
-
質問:特定文字列から空白行ま...
-
EXCEL 1列に入力したデータを...
-
エクセルで入力→日付を自動判別...
-
データー読みこんでコピーさせ...
-
エクセルのデータ抽出について...
-
テキストボックス内の文字のふ...
-
Excelで数値→文字列変換で指数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで入力シートから別シ...
-
Excel 複数のシートからグラフ...
-
Excelの中央値の複数条件について
-
VBA セルの値と同じ名前のシー...
-
ExcelVBAで、指定したシートに...
-
Excel ハイパーリンク先のセル...
-
IF, ISNUMBER, INDIRECTの組み...
-
エクセルのワークシートが重く...
-
エクセル シフト勤務表から、...
-
VBAでシート名をセルから取得し...
-
エクセルで入力→日付を自動判別...
-
エクセルVBA:表の内容を担当者...
-
質問:特定文字列から空白行ま...
-
エクセル マクロを使って日々...
-
VBAのoffsetの動き方について教...
-
エクセル自動の年月
-
エクセル:複数シートのデータ...
-
ピボットテーブルから抽出デー...
-
エクセルについて質問です 日付...
-
Excelの選択肢をポップアップリ...
おすすめ情報
画像を付けたかったのですが、何度やっても投稿できませんでした。わかりにくいと思いますが、よろしくお願いします。