2010-05-04 7 views
1

Excel에서 셀의 하이퍼 링크를 검색 한 다음이 하이퍼 링크를 타사 응용 프로그램에 붙여 넣으려고합니다. 하이퍼 링크를 클릭하면 해당 통합 문서와 함께 Excel이로드되고 해당 셀을 커서로 선택해야합니다.셀에 하이퍼 링크 하시겠습니까?

하이퍼 링크는 OneNote와 같은 Microsoft 관련 제품에서 작동합니다. 예를 들어, "D : \ abc.xls"통합 문서가 있고 셀 C12로 이동하려면 "D : \ abc.xls # C12"와 같은 하이퍼 링크를 만듭니다.

그리고 이것은 효과가 있습니다. 그러나 Microsoft 이외의 응용 프로그램에 붙여 넣으면 Excel 및 통합 문서가 열리지 만 셀은 강조 표시되지 않습니다. 어떻게 작동시킬 수 있습니까?

+0

아는 한, 아니. OneNote는 많은 "재미있는"작업을 수행합니다. 나는 OneNote 2003 및 2007 사용자이며 pre Office '95 이후 Office 개발자입니다. 현재까지도 OneNote는 여전히 일부 기능에 놀라움을 금치 못합니다. OneNote가 특정 셀을 탐색하는 데 "보내기 키"를 사용하고 있다고 생각합니다. Excel은 통합 문서를 열 때 복원되는 "마지막 현재 위치"를 유지 관리합니다. – AMissico

+0

일반적인 요청이기 때문에이 기능을 제공하는 VBA 매크로가있을 수 있습니다. – AMissico

+0

@AMissico : 나는 "Word"에서도 같은 것을 시도해 보았습니다. 매크로에 관해서 나는 인터넷 검색을 해봤지만 비슷한 기능을 발견하지 못했습니다. –

답변

1

RE 주석

을 .reg 수입으로는

REGEDIT4 

[HKEY_CLASSES_ROOT\XLOPEN] 
@="URL:Excel Opener" 
"URL Protocol"="" 

[HKEY_CLASSES_ROOT\XLOPEN\shell\open\command] 
@="CSCRIPT.EXE \"C:\\TEMP\\XLOPEN.VBS\" \"%1\"" 

이 XLOPEN.VBS를 실행할 때 호출 thatr XLOPEN:// URL 프로토콜 핸들러를 만든다.

저장이

xlopen://c:\null\test.xlsx#Q50

또는

<a href="xlopen://c:\null\test.xlsx#Q50">bla bla</a>

윈도우 xlopen://를 조회합니다 사용 실행하면 이제 C:\TEMP\XLOPEN.VBS

rem //get an argument like "XLOPEN://C:\null\text.xlsx/#F55" note extra/
dim arg: arg = WScript.Arguments.item(0) 
dim arr: arr = (split(ucase(arg), "#")) 
rem unmangle the url 
dim filename: filename = replace(arr(0), "XLOPEN://", "") 
if (right(filename, 1) = "/") then filename = mid(filename, 1, len(filename)-1) 
dim xl: set xl = createobject("excel.application") 
xl.Workbooks.Open filename 
xl.range(arr(1)).select 
xl.visible = true 

으로 다음 xlopen://c:\null\test.xlsx/#Q50 문자열을 XLOPEN.VBS에 전달하여 파일 경로 c:\null\test.xlsx1을 추출한 다음 #을 열고 범위를 선택합니다.

브라우저에서/쉘에서/Windows API를 통해 호출되는 경우 작동합니다. 타사 앱에서 작동하는지 전혀 알 수 없습니다. (당신은 도우미 exe로 스크립트를 대체 할 것입니다)

+0

게시하기 전에 인터넷 익스플로러를 열고 D : \ abc.xls 링크를 붙여서 파일을 열어 본 것처럼 몇 가지 테스트를 시도했습니다. 그러나 D : \ abc.xls # C12 링크를 붙여 넣으면 오류가 발생합니다. 메시지. 나는 그것이 word에서 작동하고 onenote가 IE에서도 작동해야한다고 생각했다. 왜 셀을 열지 않는지 궁금하다. 매우 정교한 설명에 감사드립니다. –

1

이것은 Office 응용 프로그램에서 경로 : abc.xls#C12 전체가 잠재적으로 유효한 파일 이름 인 자동으로 수행해야합니다. 셸에서 실행하려고하면 "경로를 찾을 수 없습니다"라는 오류가 발생합니다.

onenote에서 해당 링크를 클릭하고 명령 줄을 보면 excel의 결과 인스턴스가 열렸습니다. 아마도 "embedding"스위치 만있는 것이므로 아마도 onenote가 abc.xls을 파싱하고 있음을 의미합니다. 그러면 자동화 기능을 통해 Excel이 시작됩니다. 활성화 C12.

그 기능을 원한다면 도우미 응용 프로그램을 사용하여 동일한 작업을 수행하고 "C:\your_XL_loader.exe D:\abc.xls#C12"과 같은 경로를 사용해야한다고 생각합니다.

(제 3 자 응용 프로그램을 명예 윈도우 프로토콜은 투수하면 그 your_XL_loader.exe이 XXX://abc.xls#C12 같은 뭔가 자체를 연결할 수 있도록 사소한) 예는 다음과 저장을 위해, 내가 제안 된 무엇

+0

타사 응용 프로그램은 Java 응용 프로그램이며 _XL_loader.exe를 연결하여 하이퍼 링크에 연결하는 방법을 모르겠습니다. 하이퍼 링크의 # C12 부분은 내가 강조하고 싶은 셀에 따라 바뀔 것입니다. –

+0

그것의 단지 몇 가지 레지스트리 설정 : http://msdn.microsoft.com/en-us/library/aa767914%28VS.85%29.aspx -하지만 자바 응용 프로그램 중 하나를 사용자 정의 URL 프로토콜을 이해하는만큼 똑똑한 의존 핸들러 또는 최소한 쉘에 전달해야합니다. –

+0

죄송합니다. 이해가 안가요 _XL_loader.exe는 무엇입니까? 당신은 내가 url 요청을 시작할 java 앱을 가지고 있다는 것을 알았다. 우리가이 요청을 받아 들여 엑셀이 이해하는 형식으로 엑셀로 전달하는 도우미 응용 프로그램을 만들고 싶습니까? –