Excel2003環境です。
VBの使い方自体まだよく判ってない初心者ですが、質問させてください。
一つのフォルダ内に、複数(だいたい300くらい)のエクセルファイルがあります。
これらは、同一の原型ファイルを基にリネームした資料なのですが、これら全てに入っている特定のシートを一括削除したいのですが、その方法を知りたいと思います。
具体的には、
Sheet1/見積り資料
Sheet2/記入例
Sheet3/部品単価
Sheet4/(Sheet3の内容をVLOOKUPで引っ張っているデータ一覧)
という構成&シート名です(Sheet4は名称を特に定めてません)。
すべてのファイルに上記シートが設定されてますが、このうち「Sheet3/部品単価」を全て削除したいのです。
勿論、これによりSheet4が崩れても構いません(というか存在は無視します)。
そのような方法はありませんでしょうか?
また、VBのコードと一緒に、それを使用するためにどのような準備をするべきか、そちらもお教えいただければと思います。
(コードの書き込みと保存はわかりますが、上記の場合どこに書き込んでどう保存すべきかよくわかっていません)
以上、どうぞよろしくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
’マクロブックがあるフォルダ内のEXCELブックの "Sheet1"と"Sheet2"以外のシートを削除する。
Option Explicit
Const xFileSelector = "*.xls*"
Const xHeader = "BookName,SheetName(Deleted)"
Sub DelSheets()
Dim xPath As String
Dim xName As String
Dim xSheet As Worksheet
Dim zSheet As Worksheet
Dim xFileName As String
Dim xNoData As Boolean
Dim mm As Long
Dim nn As Long
Dim index As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xNoData = True
xName = ActiveWorkbook.Name
Set zSheet = ActiveSheet
zSheet.UsedRange.ClearContents
zSheet.Cells(1, "A").Resize(1, 2).Value = Split(xHeader, ",")
nn = 1
ChDir (ThisWorkbook.Path)
xPath = ThisWorkbook.Path & "\"
xFileName = Dir(xPath & xFileSelector)
Do Until (xFileName = Empty)
If (xFileName <> ThisWorkbook.Name) Then
With Workbooks.Open(xPath & xFileName, UpdateLinks:=False)
mm = mm + 1
For Each xSheet In .Worksheets
If (xSheet.Name = "Sheet1") Or (xSheet.Name = "Sheet2") Then
Else
nn = nn + 1
With zSheet
zSheet.Cells(nn, "A").Value = ActiveWorkbook.Name
zSheet.Cells(nn, "B").Value = xSheet.Name
End With
xSheet.Delete
End If
Next
Workbooks(xFileName).Activate
If Not (ActiveWorkbook.Saved) Then
ActiveWorkbook.Save
End If
ActiveWorkbook.Close
End With
xNoData = False
End If
xFileName = Dir()
Loop
If xNoData = True Then
MsgBox ("No File Found!!")
Else
MsgBox ("Open Books(File) : " & mm & vbNewLine & "Deleted Sheets : " & nn - 1)
End If
Epilogue:
With zSheet
zSheet.Columns("A:B").AutoFit
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) VBA Userform転記のみ編集可 1 2023/06/29 11:03
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excelで、複数ブックの複数シートを削除するマクロを教えて下さい
Excel(エクセル)
-
フォルダ内の全ブックのシート名を変更したいです。
Excel(エクセル)
-
VBAで別ブックのシートを指定して削除したい。
Visual Basic(VBA)
-
-
4
複数のExcelファイルにある同名シートを1つのシートに一括でまとめるには?
Excel(エクセル)
-
5
EXCEL VBA 特定シート以外のシート削除
Excel(エクセル)
-
6
複数ファイルから特定シートのコピー
Excel(エクセル)
-
7
フォルダ内の全てのBookに同じ処理を繰り返す
Excel(エクセル)
-
8
フォルダ内の全てのファイルに貼り付けを行うマクロを作りたい
Visual Basic(VBA)
-
9
複数のbookから特定のセル(行)を削除する
Excel(エクセル)
-
10
複数ファイルにある特定のシートを一度に印刷したい
Excel(エクセル)
-
11
ブックを開かずに、フォルダ内にある複数ブックの、特定セルの値を抽出した
Excel(エクセル)
-
12
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
13
指定文字が含まれるシートを削除したいです
Visual Basic(VBA)
-
14
同一フォルダ内の別ブックからシートをコピーするには? 「集計」フォルダ内に「項目別集計.xlms」と
Visual Basic(VBA)
-
15
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
16
エクセルVBAのエディターが上書きモード?に・・・・。
Excel(エクセル)
-
17
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
18
Excelで重複データの件数ではなく、何番目かを求める方法
Excel(エクセル)
-
19
Excelで複数ブックの同一セルに同じ値を入力するにはどうすればよいですか?
Excel(エクセル)
-
20
エクセルファイルを開かずにpdf化する
その他(ソフトウェア)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでブックを非表示で開いて処...
-
エクセルで参照しているデータ...
-
エクセルの関数 ENTERを押...
-
エクセルを共有するとPCによっ...
-
エクセルで別ブックをバックグ...
-
Excelでブックの共有を掛けると...
-
Excel(2010)のフィルターが保...
-
vbaでpdfを開いて1ページ目のみ...
-
WorkBooksをオープンさせずにシ...
-
エクセルで「ディスクがいっぱ...
-
エクセルVBAで、PDFファイルを...
-
Excel VBAでブックを閉じる時、...
-
【マクロ】【VBA】別ブックへの...
-
エクセルファイルを開かずにpdf...
-
Excelで複数ブックの同一セルに...
-
フォルダ内の複数ファイルから...
-
エクセルで開いていないbookの...
-
Excelファイルをダブルクリック...
-
複数のブックをひとつのブック...
-
外部ブック参照が#REF!になって...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
エクセルで参照しているデータ...
-
WorkBooksをオープンさせずにシ...
-
Excel(2010)のフィルターが保...
-
フォルダ内の複数ファイルから...
-
Excelでブックの共有を掛けると...
-
複数ファイルから特定シートの...
-
エクセルで「ディスクがいっぱ...
-
Excelで複数ブックの同一セルに...
-
エクセルファイルを開かずにpdf...
-
エクセルで別ブックをバックグ...
-
エクセルで50行ごとに区切った...
-
外部ブック参照が#REF!になって...
-
エクセル2016です。「ブッ...
-
エクセルの関数について教えて...
-
エクセルシートの一部を送りたい
-
ブックのピボットを別ブックに...
-
Excel起動時に特定のワークシー...
おすすめ情報