Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   [решено] Excel: создание кнопки -> запуск PowerShell (http://forum.oszone.net/showthread.php?t=342389)

it3 30-09-2019 12:28 2890195

Excel: создание кнопки -> запуск PowerShell
 
Подскажите пожалуйста, каким образом можно реализовать следующее:
1. Есть ячейка, необходимо создать кнопку на листе;
2. При нажатии на кнопку должен открываться Windows PowerShell ISE и вставляться туда содержимое ячейке, которая выделена.

Iska 30-09-2019 19:13 2890268

Например, так:
Скрытый текст

Код:

Option Explicit

Sub Кнопка1_Щелкнуть()
    Dim strTempFile As String
    Dim objRange As Range
   
    strTempFile = GetTemporaryName()
   
    With CreateObject("Scripting.FileSystemObject").CreateTextFile(strTempFile, True)
        For Each objRange In Selection
            .WriteLine objRange.Text
        Next
       
        .Close
    End With
   
    CreateObject("WScript.Shell").Run """PowerShell_ISE.exe"" -File """ & strTempFile & """", 1, False
End Sub

'=============================================================================
' Серый форум / vbscript: генерация пути для временного файла или папки
' (http://forum.script-coding.com/viewtopic.php?id=1221)
'=============================================================================
Function GetTemporaryName()
    Const TemporaryFolder = 2
   
    Dim strTempName
   
    With CreateObject("Scripting.FileSystemObject")
        Do
            strTempName = .BuildPath(.GetSpecialFolder(TemporaryFolder), .GetBaseName(.GetTempName) & ".ps1")
        Loop While .FileExists(strTempName) Or .FolderExists(strTempName)
    End With
   
    GetTemporaryName = strTempName
End Function
'=============================================================================


it3 01-10-2019 13:06 2890360

Iska, а как сделать тak, чтобы перед вставленной ячейкой, всегда автоматически вставлялись следующие строки:
Код:

$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exch.domain.ru/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session -DisableNameChecking


Iska 01-10-2019 14:35 2890371

Цитата:

Цитата it3
а как сделать тak, чтобы перед вставленной ячейкой, всегда автоматически вставлялись следующие строки: »

Например, так:
Код:


    With CreateObject("Scripting.FileSystemObject").CreateTextFile(strTempFile, True)
        .WriteLine "$UserCredential = Get-Credential"
        .WriteLine "$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exch.domain.ru/PowerShell/ -Authentication Kerberos -Credential $UserCredential"
        .WriteLine "Import-PSSession $Session -DisableNameChecking"
        .WriteLine
       
        For Each objRange In Selection



Время: 02:51.

Время: 02:51.
© OSzone.net 2001-