2017-12-11 10 views
0

C#을 아래 매크로를 변환하려고하는 경우 : 내가 노력하고 무엇변환은 varObj.Type = msoEmbeddedOLEObject 그런 다음

For Each varObj In ActiveDocument.Shapes 
    If varObj.Type = msoEmbeddedOLEObject Then 
    n = n + 1 
    End If 
Next varObj 

가 컴파일되지 않습니다 :

foreach (Word.Shapes tempLoopVar_varObj in winword.ActiveDocument.Shapes) 
{ 
    if (tempLoopVar_varObj.Type == ord.WdInlineShapeType.msoEmbeddedOLEObject) 
    { 
    fileCount++; 
    } 
} 

답변

0

winword.ActiveDocument.Shapes 실제로 반복자를 반환 기본 오브젝트는 Word.Shape입니다. 이 같은 시도 :

foreach (Word.Shape tempLoopVar_varObj in winword.ActiveDocument.Shapes) 
{ 
... 
} 

참고 : 단어 iterop DLL의 반복자/컬렉션은 일반적인 아니지만, 그들의 이름은 일반적인 패턴을 따릅니다. Word.Shapes를 반복 할 때 기본 객체는 컬렉션 유형과 동일하지만 단 하나의 이름 지정 -> Word.Shape입니다.