2017-01-23 1 views
1

으로 변환 이전 레거시 VB 프로그램을 C#으로 변환합니다. 방법 중 하나는 특정 Word 스타일과 일치하는 Word 문서에서 텍스트를 찾고 반환하는 작업입니다..Selection.Find.Style을 Word VBA에서 C#

With objword 
    ... 
    .Selection.Find.Style = .ActiveDocument.Styles(StyleCode) 
    ... 
End With 

이 내가 (워드 Interop를 사용하여) C#으로 할 노력하고 무엇을 : : 원래 VB 코드에서

는 다음 코드 줄이

_wordObject.Selection.Find.Style = _wordObject.ActiveDocument.Styles[styleCode]; 

I 프로그램을 컴파일하려고하면 다음과 같은 오류 메시지가 나타납니다.

'Microsoft.Office.Interop.Word.Find.Style' is not supported by the language; try directly calling accessor methods 'Microsoft.Office.Interop.Word.Find.get_Style()' or 'Microsoft.Office.Interop.Word.Find.set_Style(ref object)' 

get_Style을 사용하려고하면 t는 매개 변수를 사용하지 않고 index 속성을 사용하거나 'method group'유형의 표현식에 인덱스를 적용 할 수 없습니다.

Word에서 Word 문서의 텍스트를 찾으려면 어떻게해야합니까? 스타일?

+0

스타일은 메서드 또는 배열입니까? 비 대괄호로 호출하는 것이 효과가 있습니까? 또한 이것을 참조하십시오 http://stackoverflow.com/a/2300917/495455 - ActiveDocument에 대한 대안을 사용해보십시오 –

+0

.Selection.Find.Style은 속성으로 보입니다. 그러나 값을 할당 할 수없는 것처럼 보입니다. 또한 전송 된 링크를 이해하지 못했습니다. 다시 말하면, Word 스타일을 사용하여 Word 문서에서 텍스트를 찾고 싶습니다. –

답변

0

시도하고 오류 메시지가 말한다 무엇 및 방법 접근 전화 :

Style normalStyle = document.Styles[-1]; //Word.WdBuiltinStyle.wdStyleNormal 
_wordObject.Selection.Find.set_Style(ref normalStyle); 

내가이 기압을 테스트하는 비주얼 스튜디오에 액세스 할 필요 없다.

+0

첫 번째 줄에서 "문서"는 어디에서 가져오고 있습니까? –

0

정답을 제공 한 Jeremy Thompson에게 감사드립니다. 내가, 내가 얻을 그렇게 할 때 나는 그 ReSharper에서주의해야

_wordObject.Selection.Find.set_Style(_wordObject.ActiveDocument.Styles[styleCode].NameLocal); 

은 "인덱스 속성을 사용하여"나에게 이야기하지만,이 내가 말씀 스타일을 통해 텍스트를 찾기 위해 사용할 수 있었다 코드입니다 오류 : "Indexer에는 0 개의 매개 변수가 있지만 1 개의 인수로 호출됩니다."