2011-07-06 3 views
0

몇 분의 실험을 마친 후 직접 질문에 답변했습니다 (아래 참조). 그래서 2 일 안에 그 대답을 받아 들일거야..NET을 통한 Word와의 상호 작용


내가 Word 문서를 만들 MATLAB의 .NET 기능을 사용하고 있습니다. 테이블을 만들고 왼쪽 두 셀을 왼쪽 열에 병합하고 싶습니다.

NET.addAssembly('microsoft.office.interop.word');   %# Register Word assembly 
wordApp = Microsoft.Office.Interop.Word.ApplicationClass; %# Create an instance of Word 
wordDoc = wordApp.Documents;        %# Get the object that handles documents 
newDoc = wordDoc.Add;          %# Add a new document 
wordApp.Visible = 1;          %# Make Word visible 
selection = wordApp.Selection;       %# Get the selection object to manage selected area 
table = newDoc.Tables.Add(selection.Range, 3, 5);   %# Create a table 
table.Style = 'Table Grid';        %# Add grid lines 

나는 문제가 selection.MoveDown 메소드를 호출하는 데 문제가 있습니다 : 지금까지 나는 테이블을 만들 수 있습니다. 다음의 입력 매개 변수가이 방법에 METHODSVIEW를 나타내는 러닝

  • Microsoft.Office.Word.Selection이
  • 은 System.Object 단위
  • 은 System.Object 카운트하면
  • 은 System.Object 확장

Selection.MoveDown documentation on MSDN은 Unit 매개 변수가 Microsoft.Office.Interop.Word.WdUnits.wdCell에있는 MATLAB에서 찾은 WdUnits 열거 형임을 제안합니다.

내 문제는 Extend 매개 변수에 필요한 WdMovementType 열거 형을 찾을 수 없다는 것입니다. wdExtend 값을 사용하고 싶지만 찾을 수 없습니다. MSDN에 따르면 Microsoft.Office.Interop.Word.WdMovementType에 있어야합니다. 누가 wdExtend를 찾을 수 있는지 말해 줄 수 있습니까? 이에 즉 Microsoft.Office.Interop.Word.WdMovementType을 해야하는 경우

편집

WdMovementType 살고 실제로 않습니다.

 
>> selection.MoveDown(Microsoft.Office.Interop.Word.WdUnits.wdCell, 1, Microsoft.Office.Interop.Word.WdMovementType.wdExtend); 
??? Message: Bad parameter 
Source: Microsoft Word 
HelpLink: C:\Program Files (x86)\Microsoft Office\Office12\1033\WDMAIN11.CHM#36888 

모든 아이디어를 어떻게 적절하게이 방법 전화 : 지금은 MoveDown 방법을 실행하는 동안 오류를 받고 있어요?

편집

는 MoveDown에 대한 호출은 단위의 wdLine 값을 사용한다 :

 
>> selection.MoveDown(Microsoft.Office.Interop.Word.WdUnits.wdLine, 1, Microsoft.Office.Interop.Word.WdMovementType.wdExtend); 
+0

실행중인 Matlab 버전은 무엇입니까? –

+0

MoveDown을 호출 할 때 사용하는 정확한 구문과 정확한 오류 메시지는 무엇입니까? –

+0

@Andrew Janke - 저는 R2011a를 사용하고 있습니다. 위의 질문에서 내가 사용하는 MoveDown 구문과 결과 오류 메시지를 추가했습니다. –

답변

3

다음 표를 사용하여 W 열거 형을 확인했습니다. ORD 어셈블리 :

 
>> word = NET.addAssembly('microsoft.office.interop.word'); 
>> word.Enums 

결과는 포함 :

'Microsoft.Office.Interop.Word.WdMovementType' 

그래서 내가 그것을 MATLAB의 탭 완성에 표시되지에도 불구하고 그것을 액세스 해보십시오 거라고 생각했다. 이상하게도 충분 해 일단 액세스하면 이제 나타납니다! 나는 거기에 있었던 것 같아요.

1

을 내가 제안 당신이 말씀 2010의 최신 하나의 어셈블리를 다운로드 당신은 다운로드 할 수 있습니다 from microsoft.com How to: Install Office Primary Interop Assemblies

+0

무슨 뜻인지 모르겠습니다. Word 어셈블리가 있습니다 (질문의 첫 번째 코드 예제 참조). 문제는 그 안에 WdMovementType 열거 형을 찾을 수 없다는 것입니다. 다른 어셈블리가 필요합니까? –

+0

어떤 어셈블리 버전이 있습니까? Word 2010의 최신 버전을 다운로드하십시오. – VMAtm