2010-07-07 3 views
1

Excel에 체크 박스를 포함시키는 방법에 도움이 필요하고 체크 표시가되어있을 때 "Hello"라고 쓰여지는 메시지가 나타납니다. 그건 내가해야 할 일이 아니지만 거기에서 내 길을 찾을 수 있습니다.Powershell을 사용하여 체크 박스와 VBA 코드를 Excel에 삽입하십시오.

Powershell을 사용하여 수행해야합니다. 시작하기 만하면됩니다.

$missing = [System.Type]::missing 
$excel = New-Object -Com Excel.Application 

$wb = $excel.Workbooks.Add($missing) 
$ws = $wb.Worksheets.Item(1) 

######################################## 
# INSERT CHECKBOX HERE 
# INSERT VBA CODE HERE 
######################################## 

감사합니다. 체크 박스를 추가

답변

0

꽤 정직 :

$oleObjects = $ws.OLEObjects($missing) 
$checkbox = $oleObjects.Add("Forms.CheckBox.1",$missing,0,0,$missing,$missing,$missing,22.5,21,122.25,18.75) 

그래도 나를 미치게되고, 즉석에서 VBA 코드를 추가. C# interop에서는 다음과 같이됩니다.

Microsoft.Vbe.Interop.VBProject Project = Workbook.VBProject; 
Microsoft.Vbe.Interop.VBComponent Module = Project.VBComponents.Add(Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdModule); 
Microsoft.Vbe.Interop.CodeModule Code = Module.CodeModule; 
Module.Name = Name; 
Code.AddFromString(VBACode); 

PowerShell에서 VBProject.VBComponets는 null을 반환합니다. PowerShell에 대한 지식은 제한적입니다. 보안 문제가 될 수 있는지 궁금합니다. 최근 버전의 Excel은 프로그래밍 방식으로 VBA 코드를 추가하는 데 매우 엄격합니다.

관련 문제