2017-02-21 5 views
0

일부 Excel 파일을 자동으로 업데이트하는 매크로를 프로그래밍했으며 다른 다른 스크립트가 인터넷에서 일부 데이터 파일을 다운로드 할 때 실행하려고합니다.화면이 잠겨있는 동안 Excel에서 매크로 실행

그러나 "사용자가 로그온했는지 여부를 확인하십시오"권한을 확인할 수 없습니다.

또한 화면이 잠겨있을 때 작업 스케줄러는 열린 파일에서 실행되는 매크로가있는 Excel 파일을 열 수 없습니다.

나는 꽤 많은 사이트를 탐색했으며 만족스러운 답변을 찾을 수 없다. 보안 위험을 초래하지 않는다면 9.5 분마다 한 픽셀 씩 마우스를 움직여서 잠자는 것을 방지하는 powershell 스크립트를 사용했을 것입니다. 인공 잠금 화면을 만들고 스크립트를 사용하여 키보드와 마우스를 잠그고 모든 것을 유지하면서 매크로와 다른 powershell 스크립트를 실행할 수 있다고 상상해 봅니다. 그러나이 작업을 수행 할 전문 지식이 없습니다.

내가이 문제를 어떻게 해결할 수있는 다른 제안 사항이 있습니까? 모든 답변을 높이 평가!

정말 첫째 Running macros at scheduled time when pc is locked

+0

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

답변

0

의 대답을 이해하지 못하고는,이 문제 같은 소리 :

나는 "사용 로그온 여부 실행"을 확인할 수 없습니다 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() 
관련 문제