제 용어에 대한 사과 또는이 영역에 대한 지식 부족이있을 수 있습니다.vbs 스크립팅은 Windows 7/8에서 여전히 작동합니다.
이 (일반적으로 * .vbs 파일과 같은 디렉토리에)를 엑셀 통합 문서 WBName = "\WorkBookName.xlsm"
를 열고 해당 통합 문서에서 매크로 MacroName = "'" & strpath & WBName & "'!MacroName"
를 실행하는 *.vbs
스크립트입니다. 그런 다음 통합 문서를 저장합니다.
또한 3 개의 변수를 수신 할 수있는 WriteLog라는 Sub가 있으며 로그 파일 "TestFile.txt
에 기록됩니다. 그리고이 WriteLog 서브는 스크립트의 일부 단계에서 호출됩니다.
현재 운영 체제는 MS Windows XP Profesionel이며 매크로를 실행하기 위해이 스크립트를 사용하여 2010 파일을 엽니 다.
내 질문에이 스크립트를 windows7 및/또는 windows8에서 사용할 수 있습니까? 아니면 다른 스크립팅 언어로 변경하거나 다시 작성해야합니까? 그리고 내가 어떤 언어를한다면?
'need to update WBName & MacroName here as this is fairly generic
dim WshShell
set WshShell = CreateObject("Wscript.Shell")
dim strPath
strPath = WshShell.CurrentDirectory
Dim myExcelWorker
Set myExcelWorker = CreateObject("Excel.Application")
'myExcelWorker.Visible = True ' this makes excel visible
dim oWorkBook
dim WBName
WBName = "\WorkBookName.xlsm" 'WB to be opened
dim MacroName
MacroName = "'" & strpath & WBName & "'!MacroName" 'Macro Name to be run
'Write Start+strPath to log file
Call WriteLog("Start_XXX",strPath,"var3")
'Write Mid+strPath+WBName to log file
Call WriteLog("Mid___XXX",strpath & WBName,"var3")
'open WB for running macro
'set oWorkBook = myExcelWorker.Workbooks.open(strpath & WBName) 'for WB WITHOUT password
Set oWorkBook = myExcelWorker.Workbooks.Open(strpath & WBName,,,,"","Performance") 'for WB with password
'Write MacroName to log file
Call WriteLog("Mid___XXX",MacroName,"var3")
myExcelWorker.Run MacroName
myExcelWorker.DisplayAlerts = False 'this is required so the WB will save without being prompted
oWorkBook.Save
oWorkBook.Close
myExcelWorker.DisplayAlerts = True ' set it back to true again as it is good practice
myExcelWorker.Quit
'Write End to log file
Call WriteLog("End___XXX","t2","t3")
set oWorkBook = Nothing
set myExcelWorker = Nothing
set WshShell = Nothing
'sub to write to log file
Sub WriteLog(var1, var2, var3)
Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
'Wscript.Echo "VBSStart.vbs is running"
Dim ObjFso
Dim StrFileName
Dim ObjFile
Dim FlName
'WScript.Echo var1 & ",,,," & var2
FlName = "TestFile.txt"
StrFileName = objShell.CurrentDirectory & "\" & FlName
Set ObjFso = CreateObject("Scripting.FileSystemObject")
'Creating a file for writing data
set ObjFile = ObjFso.OpenTextFile(StrFileName, 8, True)
'Writing a string into the file
ObjFile.WriteLine(var1 & "," & var2 & "," & var3 & "," & now)
'Closing the file
ObjFile.Close
' Using Set is mandatory
Set objShell = Nothing
End Sub
'vbscript'라는 태그가 붙은 질문을 둘러보고 Windows 7/8과 관련이 있고 질문과 답변을 읽는 지 확인하여 직접 질문에 답변 할 수 있습니다. –