excelから他のアプリにキーコードを送る

Option Explicit

Private Declare Sub Sleep Lib "KERNEL32.dll" (ByVal dwMilliseconds As Long)
    
Sub hoge()
    Dim c As range
    Dim CB As New DataObject
    Dim ReturnValue
    ReturnValue = Shell("c:\\Program Files\\EmEditor\\emeditor.exe", vbNormalFocus)
    For Each c In range("A1:A9")
        Sleep 100
        SendKeys "^a", True
        SendKeys "{DEL}", True
        SendKeys c.Value, True
        SendKeys "^a", True
        SendKeys "^q", True
        CB.GetFromClipboard
        c.Offset(0, 1).Value = CB.GetText
    Next c
End Sub

どうでもないことだけど、ヘルプの使用例動かない。。。
何ですかこれ。。。

Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1)        ' 電卓を実行します。
AppActivate ReturnValue                 ' 電卓をアクティブにします。
For I = 1 To 20                        ' ループ カウンタを設定します。
    SendKeys I & "{+}", True            ' 電卓にキー コードを転送して、
Next I                                    ' I の値に 1 を加算します。
SendKeys "=", True                    ' 和を求めます。
SendKeys "%{F4}", True                ' Alt + F4 キーを転送して電卓を終了します。

ってか、そもそもこれを使うのは最終手段だよね。。。
相手の状態がわからないから、相手がちょっと考え込んだり、フォーカスがずれたりすると目も当てられない状態に。。。