Shapeを指定して削除する
すべてのShapeを選択する方法を
以前の記事『 ActiveSheetのすべてのShapeを選択 』で書きましたが、
この方法を使わなくても
すべてのShapeを選択できることがわかりました。
SelectAllメソッドという
すべてのShapeを選択できるメソッドがありました。
これを使ってすべてのShapeを削除します。
コードはこちら
Sub macro110821a() |
次にShapeの種類ごとにアクセスしていく方法です。
ActiveSheet.Shapes.TextBox.SelectAll
などとしてもできません。
これにはTypeプロパティを使います。
流れは、
すべてのシェイプをFor Eachステートメントで回していき、
ひとつひとつ目的のTypeであるかをIf文で判定して
操作したいシェイプにアクセスします。
ここで大きさ、色、位置などのプロパティを変更します。
下のコードではTextBox削除していきます。
Typeの種類についてはこちらのWebページを参照してください。
参: MsoShapeType 列挙型
コードはこちら
Sub macro110821b() |
既にシートにあるShapeのTypeが何かわからないときは、
そのShapeを選択して、次のコードを実行します。
Sub kara()
Stop
End Sub
このコードは何もしません。
中断したところで、
「Selection.ShapeRange.Type」と
ウォッチウィンドウに入力するとTypeがわかります。
イミディエイトに
次のように入力してENTERを押してもわかります。
?Selection.ShapeRange.Type
この場合は数字でしかわかりません。
Shapeについての基本は、
VBAヘルプの「図形で作業する (描画オブジェクト)」に
詳しく書いてあります。
| 固定リンク
この記事へのコメントは終了しました。

コメント