2013-06-12 3 views
1

Excel (C# 프로그램) 내에서 Excel을 실행하고 특정 추가 기능을 동시에로드하려고합니다. 이것이 가능한가? C# 프로그램은 특정 Excel 솔루션 (VSTO로 개발 된 특정 추가 기능 (DLL)이있는 Excel)을 여는 일종의 실행 프로그램 EXE 여야합니다. 추가 기능 (리본이 있음)이 처음부터 시작되어 다른 모든 내장 탭이 숨겨집니다. 런처 EXE로 Excel을 시작한 경우에만 추가 기능을로드해야합니다.Excel을 시작하고 다른 프로그램에서 특정 추가 기능을로드하십시오.

내가 엑셀 ​​예를 들어

ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.FileName = "EXCEL.EXE"; 
Process.Start(startInfo); 

시작할 수 있습니다 그러나 새 Excel 과정을 말할 수있는 가능성이 있다는 것을 알고있는 추가 기능로드해야 하는가?

+0

추가 기능은 .xlam 또는 .dll입니까? –

+0

.dll addin입니다. –

+1

아. 나는 그런 다음 방법이 있다고 생각하지 않는다. Excel 명령 줄은 "/ r"(.xlam의 경우 유용) 및 "/ a"(자동화 추가 기능의 경우) 만 지원합니다. –

답변

1

해당 버전의 Office에서 interop을 사용하여 확인합니다.

네임 스페이스에 대한 몇 가지 정보가 있습니다. 확장 프로그램에서 DLL을 가져올 수 있거나 Office 폴더 내에 있습니다. 아득히 특정 플러그인을 실행하면 interop 라이브러리에는 그 라이브러리가 포함될 수 있지만 확실하지는 않습니다.

http://msdn.microsoft.com/en-us/library/ms262200(v=office.11).aspx

0

당신은 레지스트리를 해킹하여이를 달성 할 수있다. 시작하기 전에 goto 레지스트리를 실행하고 Load (3)을 시작할 때 표시 할 추가 기능의 load behaiour를 설정하십시오. 런처에서 엑셀 프로세스가 실행 된 후 해당 추가 기능을 언로드 (0)하여 해당 사용자가 엑셀을 시작하면이 추가 기능이 나타나지 않도록합니다. 실행기 코드가 다음과 같이 보입니다.

// Code to change load behavior of addins to Load 
    ProcessStartInfo startInfo = new ProcessStartInfo(); 
    startInfo.FileName = "EXCEL.EXE"; 
    Process.Start(startInfo); 
// Code to change load behavior of addins to UnLoad 
관련 문제