突然ですが、前任者から引き継いだExcelファイルを開いて、絶望したことはありませんか?
- 「なぜか大量のスクリーンショットが重なっている」
- 「見えない場所に古いボタンが残っている」……。
これを1つずつマウスで選んでDeleteキーで消していく作業。100個あったら、1個3秒としても300秒(5分)もかかります。何より、手が疲れますし、イライラしますよね。
この記事では、そんな「図形消去のイライラ」をわずか1秒で解決する方法を解説します。
すべての図形を一瞬で消去するVBAコード
以下のコードをコピーして貼り付けるだけでOKです。
Sub DeleteAllShapes()
' 作業中のシートにある図形(画像、オートシェイプ、ボタンなど)を数えます
Dim count As Long
count = ActiveSheet.Shapes.Count
' もし図形が1つもなければ終了します
If count = 0 Then
MsgBox "消去する図形は見つかりませんでした。", vbInformation
Exit Sub
End If
' 確認メッセージを出します(間違えて消さないため)
Dim result As VbMsgBoxResult
result = MsgBox(count & "個の図形をすべて削除しますか?", vbYesNo + vbQuestion)
If result = vbYes Then
' すべての図形を削除する魔法の一行
ActiveSheet.Shapes.SelectAll
Selection.Delete
MsgBox "完了しました!", vbInformation
Else
MsgBox "キャンセルしました。", vbExclamation
End If
End Sub
使い方:簡単3ステップで完了!
- Excelで Alt + F11 を押して、プログラムを書く画面(VBE)を開きます。
- 画面上のメニューから「挿入」→「標準モジュール」をクリックします。
- 出てきた白い画面に、上のコードを貼り付けて、F5 キーを押すだけ!
なぜこのVBAコードが効果的なのか
Excelにおける「図形(Shapeオブジェクト)」には、写真やオートシェイプだけでなく、各種入力ボタンなども含まれます。 このコードを実行することで、シート上に配置されたすべてのオブジェクトを一括でスッキリ清掃できます。
私自身も以前は一回ずつ手動でクリックして指を痛め、貴重な時間を無駄にしていました。
でも、このコードを作ってからは、一瞬で綺麗なシートへリセットされる快適さを実感しています。作業効率化に役立ちますので、ぜひお試しください!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。
リンク
リンク

コメント