'清除macro1宏工作表
main
sub main
Dim fp, fs, fd, sFolder, sExt, s
fp = Left(wscript.scriptfullname, Len(wscript.scriptfullname) - Len(wscript.scriptname))
Set fs = CreateObject("scripting.filesystemobject")
Set fd = fs.getfolder(fp)
Set Files = fd.Files
s = ""
For Each file In Files
fsFile = LCase(fs.GetFileName(file))
fsExt = LCase(fs.GetExtensionName(file))
if fsExt="xls" or fsExt="xlsx" then
if xls_macro_clear(file) = 1 then
s = s & fsFile & ": 清除 Macro1 宏工作表成功!" & vbLf & vbLf
end if
end if
Next
if s = "" then s = "无 Macro1 宏工作表"
MsgBox s
end sub
Function xls_macro_clear(xls)
'On Error Resume Next
dim oExcel, wb, i, macro_flag
Set oExcel=CreateObject("Excel.Application")
oExcel.Application.ScreenUpdating = False
oExcel.Application.DisplayAlerts = False
oExcel.visible = False
set wb = oExcel.Workbooks.Open(xls)
macro_flag = 0
'msgbox "Names:" & wb.Names.count
For Each i In wb.Names
i.Delete: macro_flag = 1
Next
For Each i In wb.Sheets
If i.Visible <> True Then
i.Visible = True: i.Delete: macro_flag = 1
End If
Next
'msgbox xls & "," & macro_flag
if macro_flag = 1 then wb.Save
wb.Close
oExcel.Application.DisplayAlerts = True
oExcel.Application.ScreenUpdating = True
oExcel.quit
set wb = nothing
set oExcel = nothing
xls_macro_clear = macro_flag
End Function