プロが教える店舗&オフィスのセキュリティ対策術

下記のマクロは以前教えて頂いたマクロで、マクロを実行すると、指定フォルダ内に指定セル値にて
保存されますが、
その時に指定の非表示シート
「List = Array("休日", "受付", "管理表", "300")」
が削除されますが、この部分の非表示シートを全て削除しないように変更出来る方法を教えてください。
現状のマクロ
Sub 行政報告標準()

Dim alert As VbMsgBoxResult
alert = MsgBox("行政報告を保存します。", vbYesNo + vbQuestion, "行政報告確認")
If alert <> vbYes Then
Exit Sub
End If

Application.ScreenUpdating = False
Dim folder As String
folder = "\\Nas-sp01\share\確認部\行政報告フォルダ\☆確認済交付月別物件(完了検査対象)\" & Worksheets("選択シート").Range("E4").Text & " 【担当】確認番号 建物名称\" & Worksheets("選択シート").Range("E3").Text & "\"
Dim initName As String
initName = folder & Worksheets("【標準】第1号様式").Range("Z1").Value
Dim newName As String

newName = initName & ".xlsm"
Dim thisBk As Workbook
Dim copyBk As Workbook
Set thisBk = ActiveWorkbook
ThisWorkbook.SaveCopyAs newName
Set copyBk = Workbooks.Open(newName)
Dim ws As Worksheet
Dim TargetCheck As String
Dim List As Variant
Dim i As Long
Dim Chk As Boolean
List = Array("休日", "受付", "管理表", "300")
For Each ws In copyBk.Worksheets
Chk = False
If ws.Visible = False Then
For i = 0 To UBound(List)
If ws.Name = List(i) Then
Chk = True
Exit For
End If
Next i
If Chk = False Then
TargetCheck = TargetCheck & ws.Name & vbCrLf
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
End If
Next ws
copyBk.Close SaveChanges:=True
Application.ScreenUpdating = True
End Sub
以上となります。
よろしくお願いいたします。

A 回答 (1件)

> この部分の非表示シートを全て削除しないように変更出来る方法を教えてください。



削除しないようにするためだけなら
ws.Delete
の一行を
' ws.Delete
に直すだけで良いと思います(たぶん)。

でも、じゃあなんのために
List = Array("休日", "受付", "管理表", "300")
以下のコードを書く必要があるのかがよく分かりません。

まず、このコード全体の動きや仕組みを理解されているのでしょうか?
    • good
    • 1
この回答へのお礼

回答ありがとうございました。
上手くできました。
ただ、コード自体は継ぎ足ししており、全体の動きは少しは理解出来ておりますが、仕組みはイマイチです。

お礼日時:2024/03/27 16:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A