ExcelVBAからPowerShell(ps1)を実行

' **************************************************
' PowerShellの実行(Execコマンド使用バージョン)
' **************************************************
Private Function ExecPowerShell(cmdStr As String) As String
 
    ' WshShellオブジェクト
    Dim oExec As Object
 
    ' Execコマンドで実行する
    Set oExec = CreateObject("Wscript.shell").Exec("powershell -ExecutionPolicy Unrestricted -File " + cmdStr)
     
    ' ジョブが実行中(0)の間は、スリープしながら完了(1)まで待つ
    Do While oExec.Status = 0
        ' 100ミリ秒
        Sleep 100
    Loop
 
    ' 標準出力取得
    ExecPowerShell = oExec.StdOut.ReadAll
 
End Function

IE11のオプション設定をレジストリで変更する

「ポップアップの発生時」をレジストリで設定する方法は

ハイブ HKEY_CURRENT_USER
キーパス Software\Microsoft\Internet Explorer\TabbedBrowsing
値の名前 PopupsUseNewWindow
値の種類 REG_DWORD
値のデータ 0:ポップアップを開く方法を Internet Explorer で自動的に判定する
1:常に新しいウィンドウでポップアップを開く
2:常に新しいタブでポップアップを開く

とのことです。

ExcelVBAでエクスプローラ風のファイルコピー

例にアニメーション付きでコピーする

'C:\CopySource以下にあるファイルをすべてC:\CopyTarget\以下にコピーする。
'コピーに時間がかかる場合はコピー中のダイアログが自動的に表示される。

'このサンプルを動作させるにはフォーム上にコマンドボタンを1つ貼り付けること。

Private Declare Function SHFileOperation Lib "shell32" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

Private Type SHFILEOPSTRUCT
    hwnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAnyOperationsAborted As Long
    hNameMappings As Long
    lpszProgressTitle As String
End Type

Private Const FO_COPY = &H2
Private Const FO_DELETE = &H3
Private Const FO_MOVE = &H1
Private Const FO_RENAME = &H4

Private Sub Command1_Click()

    Dim Ret As Long
    Dim sf As SHFILEOPSTRUCT

    sf.hwnd = Me.hwnd
    sf.wFunc = FO_COPY
    sf.pFrom = "C:\CopySource\*"
    sf.pTo = "C:\CopyTarget"

    Ret = SHFileOperation(sf)

    If Ret <> 0 Then MsgBox "失敗しました。"

End Sub