Вставьте флажок и код VBA в Excel, используя Powershell - PullRequest
1 голос
/ 07 июля 2010

Мне нужна помощь о том, как включить флажок в 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 голосов
/ 07 июля 2010

Добавление флажка довольно просто:

$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 # взаимодействия это будет примерно так:

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 возвращает нольМои знания PowerShell довольно ограничены.Интересно, может ли это быть проблемой безопасности.Последние версии Excel очень строго относятся к программному добавлению кода VBA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...