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

Excelのシート上のテキストボックスをすべて削除する方法です。
Excel2007で確認しました。

通常の方法

  1. ホーム-編集-検索と選択-条件を選択してジャンプ-選択オプションダイアログを開く。(Ctrl+G、セル選択でも同じ)
  2. オブジェクトにチェックしてOKをクリック。
  3. テキストボックスがすべて選択されていることを確認。
  4. Deleteキーを押す。

これでテキストボックスがすべて削除されますが、テキストボックスだけでなく、その他の図形などもすべて削除されます。

マクロを使う方法

マクロを使う場合は次のようにします。

Sub shape_delete()
    For Each myshape In ActiveSheet.Shapes
        myshape.Delete
    Next
End Sub

この場合、やはりテキストボックスだけでなく他の図形も削除されてしまいます。
テキストボックスだけ削除する場合は次のようにします。
「.Type = msoTextBox」として図形がテキストボックスである場合だけ処理するようにします。

Sub textbox_delete()
    For Each myshape In ActiveSheet.Shapes
        If myshape.Type = msoTextBox Then
            myshape.Delete
        End If
    Next
End Sub

タイプを変えれば、例えば次のようにコメントだけを削除することもできます。

Sub comment_delete()
    For Each myshape In ActiveSheet.Shapes
        If myshape.Type = msoComment Then
            myshape.Delete
        End If
    Next
End Sub

例えば、ボタンなどのフォーム以外を指定したければ「.Type <> msoFormControl」とします。

コメント

タイトルとURLをコピーしました