2010-07-07 52 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代码非常严格。