Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » VBAでシート上のテキストボックスをすべて削除する

VBAでシート上のテキストボックスをすべて削除する

対象:Excel2003, Excel2007, Excel2010

「エクセル2010 テキストボックス まとめて削除」
という検索が行われていました。

オブジェクトをすべて削除するのなら、[ジャンプ]ダイアログから[選択オプション]ダイアログや、[Ctrl]+[Shift]+[スペース]キーで、全オブジェクトを選択しておいて[Delete]キーを押すという操作でいいでしょう。

しかし、すべてのすべてのオブジェクトではなく、テキストボックスだけをすべて削除するとなるとちょっと面倒です。

で、VBAで、マクロを作成してみました。

[スポンサードリンク]

アクティブシートのテキストボックスを削除するサンプルマクロ

アクティブなシートに含まれているすべてのテキストボックスを削除するマクロです。

Sub アクティブシートのテキストボックスをすべて削除する()
 Dim i As Long
 With ActiveSheet.Shapes
  For i = .Count To 1 Step -1
   If .Item(i).Type = msoTextBox Then
    .Item(i).Delete
   End If
  Next
 End With
End Sub

サンプルマクロで行っている処理

アクティブなシートのShapeオブジェクトを「Step -1」のFor~Nextループの中で順番に調べ、

With ActiveSheet.Shapes
 For i = .Count To 1 Step -1    

Typeプロパティが「msoTextBox」のときに、Deleteしています。

  If .Item(i).Type = msoTextBox Then
   .Item(i).Delete

実は、もっと簡単なマクロで、ループを回さなくても、アクティブシートのテキストボックスだけを削除できますが、それは別ネタとして、近日中にご紹介しますループを回さないマクロをご紹介しました。2012-05-01)

最終更新日時:2020-03-09 14:32

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » VBAでシート上のテキストボックスをすべて削除する

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.