의 대답을 이해하지 못하고는,이 문제 같은 소리 :
나는 "사용 로그온 여부 실행"을 확인할 수 없습니다 I 때문에 충분한 권한이 없습니다.
... 예약 된 작업을 생성하려는 컴퓨터에 대한 관리자 권한이 없기 때문입니다. 관리자 인 경우 작업 관리자를 관리자로 실행하거나 관리자 권한으로 사용자로 실행하십시오.
관리자 권한 기준을 충족한다고 가정하면 Excel 통합 문서를 열고 PowerShell을 사용하여 매크로를 실행할 수 있습니다. 아래 코드로 PowerShell 스크립트를 만들고 저장하십시오. 통합 문서 경로, 함수 이름 및 매개 변수에 맞게 수정하십시오. 그런 다음 PowerShell 스크립트를 호출하는 예약 된 작업을 만듭니다.
Excel 통합 문서의 위치가 "신뢰할 수있는 위치"에 있는지도 확인해야합니다. Excel에서 파일> 옵션> 보안 센터> 보안 센터 설정> 신뢰할 수있는 위치로 이동합니다. Excel 통합 문서가 들어있는 폴더가 없으면 새 위치 추가를 클릭하여 폴더를 추가합니다.
새 위치 추가가 회색으로 표시되어있는 경우 이는 회사에서 설정 한 그룹 정책 (회사 컴퓨터/도메인에있는 경우)에 가장 가능성이 높습니다. 그렇다면 신뢰할 수있는 위치가 있으므로 Excel 통합 문서를 하나로 이동하십시오.
# set params for workbook
$WorkbookPath = 'C:\Path\To\WEorkbook.xlsb'
$FunctionName = 'HelloWorld'
$FunctionParam = 'Test'
# create an Excel com object
$Excel = New-Object -ComObject Excel.Application
$Excel.visible = $false
$Workbook = $Excel.Workbooks.Open($WorkbookPath)
# call function with params. add extra comma delimited params here, like this:
# $Excel.Run($FunctionName, $P1, $P2, $P3, $P4)
$Excel.Run($FunctionName, $FunctionParam)
# close the workbook
$Workbook.Close()
# quit Excel and cleanup
$Excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel) | Out-Null
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
Excel 파일로 영구적으로 옵션을 여는 중입니까? 여러분이 참조한 대답은 매분마다'Module1.test'를 실행합니다. 'tempo()'는 설정된 시간에'message_ctrl()'을 호출하고'Module1.test'를 호출 한 다음'message + ctrl()'을 호출하는'tempo()'를 호출합니다. OnTime] (https://msdn.microsoft.com/en-us/library/office/ff196165.aspx)을 참조하십시오. 대부분의 경우 PowerShell과 Excel은 사용자가 직접 제한하지 않으면 중간 파일을 사용하여 통신해야합니다. – gms0ulman