プロが教えるわが家の防犯対策術!

VBAで選択範囲外の図形(オブジェクト)の消去は出来ますでしょうか?
印刷範囲外のオブジェクトを消したくてオブジェクト名を'図形'と名前を付けました。

A 回答 (1件)

>印刷範囲外のオブジェクトを消したくてオブジェクト名を'図形'と名前を付けました。


名前は特にいりません。
複数選択する時は、コントロールキーで、残すものを選択して、他は削除してください。
仕組みは、AlternativeText に、印を入れて、削除するものとしないものを別けて、印のないものを削除します。
これは、フォーム・コントロールなどは削除しません。

'//標準モジュールに入れてください。
Sub DelShape_Excpt_selection()
Dim selShapes As Object
Dim i As Long
Dim shp As Object
Set selShapes = Selection
If TypeName(selShapes) = "Range" Then MsgBox "オートシェイプが選択されていません。", vbExclamation: Exit Sub
If MsgBox("選択されているものを残して、オートシェイプを削除します。", vbOKCancel) = vbCancel Then Exit Sub
For i = 1 To selShapes.ShapeRange.Count
If selShapes.ShapeRange(i).Type = msoAutoShape Then
  selShapes.ShapeRange(i).AlternativeText = "-"
End If
Next i
For Each shp In ActiveSheet.Shapes
If shp.Type = msoAutoShape Then
  If Not shp.AlternativeText Like "-" Then
   shp.Delete
  Else
   shp.AlternativeText = Replace(shp.AlternativeText, "-", "")
  End If
End If
Next shp
End Sub
'//
点線で囲まれたものが、残す方で、されていないほうが、削除されます。
フォームコントロールのボタンを置いても、ボタンは削除されません。
「VBAで選択範囲外の図形(オブジェクト)」の回答画像1
    • good
    • 1
この回答へのお礼

有り難う御座います。全くコードは分かりませんが(・・;)試してみます。

お礼日時:2018/02/26 08:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!