[[20110404104252]] 『オートシェイプのセル参照をマクロで一括削除する』(エクする?) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『オートシェイプのセル参照をマクロで一括削除するには』(エクする?)

シート上に多くのオートシェイプ、テキストボックス、四角形(Rectangle)を置いて あり、そのうち大部分には「=$D$9」のようにセル参照の関数を入れていますが、この関数をマクロによって一括にすべて削除したいです。

自動記録では、

    ActiveSheet.Shapes("Rectangle 35").Select
    ExecuteExcel4Macro "FORMULA("""")"

のようになりましたが、シートによってオートシェイプの数も名前も異なりますので、応用できません。繰り返し処理で対応するのかとは思うのですが・・・

アドバイスいただけるでしょうか?

Excel2003
Windows 2000


こんなこと?

Sub Sample()

    Dim sp As Shape
    For Each sp In ActiveSheet.Shapes
        sp.Select
        ExecuteExcel4Macro "FORMULA("""")"
    Next
End Sub

ぶらっと立ち寄り


バッチリできました。ありがとうございます。
Dim As まだピンと来ない・・・日々勉強です。
(エクする?)

 被りましたが・・・

 Shapeをループさせますが、Shapeには写真やコメントも含まれるので
 msoAutoShapeだけに対して処理します。

  Sub test()
  Dim shp As Shape
  For Each shp In ActiveSheet.Shapes
    If shp.Type = msoAutoShape Then
      With shp.DrawingObject
        .Text = ""
        .Formula = ""
      End With
    End If
  Next shp
  End Sub

 (momo)

momoさん
ありがとうございます。
これだとテキストボックスに投入されたセル参照が残りますね。
オートシェイプのほうはキレイに削除されました。
あと処理はほんの少し重いかも・・・。


エクする?です。

    If shp.Type = msoTextBox

でテキストボックスもできました。
勉強になりました。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.