変換

2017-12-11 10 views
0

変換

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"という単数の名前を付けています。