対象: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
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でシート上のテキストボックスをすべて削除する