2011-10-04 6 views
0

대부분의 사용자가 최신 버전의 Microsoft Office를 사용하고 있고 일부 컴퓨터의 컴퓨터 제한 사항으로 인해 Office 2003/2007의 이전 버전을 사용하는 경우 , 2010 Office System에 이전 버전의 Office를 설치하지 않고 응용 프로그램을 배포 할 수 있도록 타사 어셈블리가 아닌 Office Interop 라이브러리를 올바르게 사용할 수있는 방법이 있습니까?혼합 된 Office 2003/2007/2010 환경의 Microsoft Office Interop

답변

1

우리는 똑같은 경우를 가지고 있습니다. 나는 늦은 바인딩 .CreateObject("Excel.Application")을 사용했습니다. 후기 바인딩을 사용하는 것은 인텔리 센스가 없기 때문에 가장 좋은 방법은 먼저 Office로 클래스에 코드를 작성하는 것입니다. Interop.Excel이 참조 된 후 후기 바인딩을 사용하는 다른 클래스로 모든 코드를 복사합니다.

+0

좋은 생각입니다. 감사! –

1

글쎄, 아직 누군가가 이것을 보아도 될지 모르지만, 그것이 완벽하게 작동합니다.

나는 Excel 2010 (유일한)이있는 컴퓨터에서 프로그래밍되었고 Excel 2003이있는 다른 컴퓨터에서 완벽하게 실행되었습니다. (Visual Studio 2010을 사용하여 프로그래밍 됨)

솔루션 탐색기에서 "참조 추가"를 클릭하고 ".NET"섹션으로 이동하십시오. "Microsoft.Office.Interop.TheProgramYouWant"를 비롯한 많은 Assmeblies가 있습니다. 비밀은 최신 버전 (14.0.0.0)이 아닌 이전 버전 (12.0.0.0)을 선택하는 것입니다.

"로컬 복사"와 "특정 버전"옵션이 모두 true로 설정되어 있습니다 (변경하지 않았지만 변경 사항이있을 경우 exaclty를 모르겠습니다).

+0

이것이 내 문제를 해결했습니다! Windows2008 R2의 Office 2010 Interop – Ras

0

지연 바인딩을 사용하면 프로젝트에서 Office DLL을 참조 할 필요가 없으므로 지연 바인딩을 사용하십시오. Outlook 후기 바인딩 예제 :

Dim OutlApp As Object 
Dim NewEmail As Object 

OutlApp = CreateObject("Outlook.Application") 
NewEmail = OutlApp.CreateItem(0) 
관련 문제