2013-05-14 2 views
0

TextPad에서 관련 텍스트 파일을 여는 것이 편리한 VBA userform이 있습니다. 다음과 같이이 작업을 수행 할 수 있습니다.VBA의 특정 줄에서 텍스트 파일을 열고 표시하는 방법

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

그러나 실제로 텍스트 파일을 특정 줄 번호로 표시하고 싶습니다. 이 셸 호출에 줄 번호를 인수로 전달하는 방법이 있습니까? 나는 여기서 잃어 버렸다.

답변

1

당신은 TextPad를 내 고토 라인 바로 가기를 실행하는 데 WScript.Shell.SendKeys를 사용하여이 작업을 수행 할 수 있습니다 (CTRL-G)

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 편집기 창에 바인딩 된 것으로 보입니다.

+0

와우, 아주 좋습니다! TextPad 찾기 도구를 사용하여 올바른 선을 얻는 것이 더 쉬울 것이기 때문에이 방법이 내가 요구 한 것보다 훨씬 더 유연하다는 것을 알게되어 기쁩니다. – Excellll