2010-12-04 24 views
0

異なる製品の一覧のケースラベルを生成するマクロがあります。製品の中には無菌であるものもあり、ラベル上に放射標識ドットの位置として円を描く必要があります。円の内側には、ドットの位置としてラベル付けされたテキストボックスもあります。無菌ではないすべての部分に円を削除するMS Word 2003 VBAグラフィックオブジェクトを削除する

ThisDocument.Bookmarks("GammaDot").Range.Delete 

:私はサークルのオートシェイプを挿入し、それにブックマークを作成し、コードを使用してこれを実行しようとしました。このコードは円内のテキストボックスからテキストを削除するように機能しますが、円自体は削除されません。 また、ボックス内のテキストだけがテキストボックス自体が削除されていないようです。 bookmarks.Deleteコマンドは実際のオブジェクトでは機能しませんか?それ以外の場合は、円とテキストボックスを削除するにはどうすればよいですか? ありがとうございました

答えて

0

名前またはループで図形を削除する必要があると思われます。ブックマーク親はテキストボックスではなくドキュメントを返します。これは、テキストボックスと円の両方を削除します:

For i = ThisDocument.Shapes.Count To 1 Step -1 
    ''Debug.Print ThisDocument.Shapes(1).Name 
    ThisDocument.Shapes(i).Delete 
Next 
+0

感謝。それは完璧に働いた –

0

あなたがブックマークの範囲のShapeRangeプロパティを使用してブックマークに属する形状のホールドを取得し、そのTextFrameを使用して図形のテキストことができます。

Dim bkmk As Bookmark 
Set bkmk = ActiveDocument.Bookmarks("circle") 
Dim shp As Shape 
Set shp = bkmk.Range.ShapeRange.Item(1) 
Debug.Print shp.TextFrame.TextRange.Text 
shp.Delete 

シェイプを削除すると、含まれているテキストも削除されます。

0

あなたは、VBAエディタで次のコードを実行することで、テキストとそのフォーマット以外のすべてを削除することができます。

サブDeleteAllExceptText()

Dim i As Integer 

With ActiveDocument 
    For i = .Tables.Count To 1 Step -1 
     .Tables(i).Delete 
    Next i 
End With 

Dim j As Integer 

With ActiveDocument 
    For j = .Shapes.Count To 1 Step -1 
     .Shapes(j).Delete 
    Next j 

Dim k As Integer 

With ActiveDocument 
    For k = .InlineShapes.Count To 1 Step -1 
     .InlineShapes(k).Delete 
    Next k 

End Subの

関連する問題