使用Powershell将复选框和VBA代码插入Excel

时间:2010-07-07 14:12:38

标签: excel vba powershell

我需要有关如何在Excel中包含一个复选框的帮助,并在勾选时让Msgbox显示“Hello”。这不是我真正需要做的事情,但我可以从那里找到自己的方式。

这应该使用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
########################################

感谢。

1 个答案:

答案 0 :(得分: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代码非常严格。