2010-07-07 48 views
1

我需要關於如何在Excel中包含複選框以及使Msgbox在打勾時顯示「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代碼非常嚴格。