InlineShapes オブジェクト (Publisher)

Shape.IsInline が True の場合、描画レイヤー内のオブジェクトを表す Shape オブジェクトのコレクションを格納します。 図形のコレクションは、指定されたテキスト範囲内の図形に限定されています。

注釈

InlineShapes コレクションは、TextRange オブジェクトでのみ使用できます。

  • TextFrame.Story.TextRange.InlineShapes を使用すると、オーバーフローしている図形を含め、テキスト フレーム内のすべてのインライン図形が返されます。
  • TextFrame.TextRange.InlineShapes を使用すると、テキスト フレームに表示されるインライン図形のみが返され、オーバーフローしている図形は返されません。

InlineShapes コレクションには、Document.Stories(i) からアクセスすることもできます。TextRangeここで、i はパブリケーションのアクティブなページのインデックスです。

InlineShapes コレクションは、含まれている ShapeRange を含む、 Page.Shapes コレクションで利用可能ではありません。

TextRange オブジェクトの InlineShapes プロパティを使用して、InlineShapes コレクションを取得します。

Item (index) メソッドを使用して、1 つのインライン図形を返します。

Shapes.Range メソッドを使用して、InlineShapes コレクションのすべてのメンバーを含む ShapeRange オブジェクトを取得します。 Range プロパティのパラメーターに、インデックスまたは文字列の配列、あるいは単一のインデックスまたは文字列を指定することにより、範囲内の特定の図形を選択できます。

次の使用例は、文書の 1 ページ目の最初の図形であるテキスト ボックスを検索し、テキスト範囲内に複数のインライン図形がある場合は、テキスト ボックスのテキスト範囲の末尾にテキストを追加します。

Dim theShape As Shape 
 
Set theShape = ActiveDocument.Pages(1).Shapes(1) 
 
With theShape.TextFrame.TextRange 
 If .InlineShapes.Count > 1 Then 
 .InsertAfter (" There is more than one inline shape in this text box.") 
 End If 
End With

次の例では、テキスト ボックス内の 3 番目のインライン図形を検索し、垂直方向に反転します。

Dim theShape As Shape 
 
Set theShape = ActiveDocument.Pages(1).Shapes(1) 
 
With theShape.TextFrame.Story.TextRange 
 With .InlineShapes(3) 
 .Flip (msoFlipVertical) 
 End With 
End With

次の使用例は、まず、ShapeRange 変数に、テキスト ボックス内のインライン図形のコレクションに相当する範囲を設定します。 次に、該当範囲の各インライン図形にいくつかの修正を加えます。 ここでは、ページ上の最初の図形が、3 つのインライン図形を含むテキスト ボックスであることを前提にしています。

Dim theRange As ShapeRange 
 
Set theRange = ActiveDocument.Pages(1).Shapes(1) _ 
 .TextFrame.Story.TextRange.InlineShapes.Range 
 
With theRange 
 .Item(1).Flip msoFlipVertical 
 .Item(2).MoveOutOfTextFlow 
 .Item(3).Delete 
End With

メソッド

プロパティ

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。