
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelで、複数ブックの複数シートを削除するマクロを教えて下さい
Excel(エクセル)
-
VBAで別ブックのシートを指定して削除したい。
Visual Basic(VBA)
-
フォルダ内の全ブックのシート名を変更したいです。
Excel(エクセル)
-
-
4
Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい
Excel(エクセル)
-
5
EXCEL VBA 特定シート以外のシート削除
Excel(エクセル)
-
6
複数のbookから特定のセル(行)を削除する
Excel(エクセル)
-
7
【ExcelVBA】指定のシート以外を削除する方法
Visual Basic(VBA)
-
8
大量のフォルダからひとつのフォルダにファイルをまとめたい!
その他(ソフトウェア)
-
9
フォルダ内の全ブックのシート名を変更したい
Excel(エクセル)
-
10
フォルダ内のexcelファイルを順に開いて印刷して閉じるマクロを作りたいのでご教授お願いします。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
VBAでブックを非表示で開いて処...
-
エクセルの関数 ENTERを押...
-
Excelで複数ブックの同一セルに...
-
Excelファイルをダブルクリック...
-
【マクロ】【画像あり】❶ブック...
-
エクセルで参照しているデータ...
-
フォルダ内の複数ファイルから...
-
エクセルを開くと最大化などの...
-
Excelでブックの共有を掛けると...
-
エクセルでウィンドウの枠固定...
-
エクセル 複数のブックを一度...
-
参照したいブックのパス名に"["
-
VBAでブック保護非保護を判定す...
-
【マクロ】【画像あり】ファイ...
-
Excel(2010)のフィルターが保...
-
Excelで指定範囲のデータ...
-
WorkBooksをオープンさせずにシ...
-
エクセルで別ブックをバックグ...
-
エクセル2016です。「ブッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】アクティブセルの時...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
WorkBooksをオープンさせずにシ...
-
エクセルで参照しているデータ...
-
Excelファイルをダブルクリック...
-
Excelでブックの共有を掛けると...
-
「ブックの共有」を有効にして...
-
Excel(2010)のフィルターが保...
-
Excelの新しい空白のブックを開...
-
同じフォルダへのハイパーリン...
-
フォルダ内の複数ファイルから...
-
エクセルで別ブックをバックグ...
-
別ブックから入力規則でリスト...
-
ブックのピボットを別ブックに...
-
エクセルでウィンドウの枠固定...
-
エクセルにおける,「ブック」...
-
Excelで複数ブックの同一セルに...
-
Excelで指定範囲のデータ...
おすすめ情報