0

次のようにTextPadでテキストファイルを開くためのVBAユーザーフォームがあります。

Call Shell("C:\Program Files\TextPad 5\TextPad.exe " & "C:\testfile.txt", vbNormalFocus)

テキスト ファイルを特定の行番号に表示したいと考えています。

このシェル呼び出しに引数として行番号を渡す方法はありますか?

4

2 に答える 2

2

これは、WScript.Shell.SendKeys を使用して、TextPad (ctrl-G) 内で goto 行のショートカットをトリガーすることで実現できます。

Dim wshshell
Set wshshell = CreateObject("WScript.Shell")

Call Shell("C:\Program Files\TextPad 5\TextPad.exe " & "C:\testfile.txt", vbNormalFocus)
Application.Wait (10)
wshshell.SendKeys "^g"      'ctrl-G
Application.Wait (10)
wshshell.SendKeys "15"      'desired line number
Application.Wait (10)
wshshell.SendKeys "{ENTER}" 'enter

コマンド間の遅延を追加または削除するには、待機行をいじる必要があるかもしれませんが、これを Excel の VBA モジュール内からテストしたところ、機能しました。

VBAから直接呼び出せるSendKeysは知っているのですが、それを使おうとするとvbaのエディタウィンドウにバインドされてしまうようです。

于 2013-05-14T19:24:44.137 に答える