作成済みのExcelファイルを新しい問題に対応させるために、データを削除したり付け加えたりといった作業を行うことがありますよね。
このデータは必要ないので、削除!
このグラフもいらないな、削除!
そうしたときに、どこかに消したデータを参照しているグラフが残っていて、スクロールするたびにエラーが出ることってありません?このような場合、どこにこのグラフがあるのか、シート内を探し回ることになります。
僕もこのような状況に遭遇することがあったのですが、非表示になっているセルや、行の高さや列の幅が小さく設定されたセルにグラフがあった場合など、なかなかグラフが見つからず無駄で疲れる時間を費やしてしまう結果となりました。
今回はグラフを削除する作業を効率よく、ささっと片付けてしまう方法を紹介していきます!
さて、今回の問題にどう対処するか?
実はこの問題、Excelのマクロを使うと簡単に処理できるんですよ。
エラーを起こさずグラフを一気に削除してしまいたいあなた!
是非今回紹介する方法を参考にしてみてくださいね。
このページの中では、今回紹介するシート内のグラフを一気に削除できるマクロを組み込んだExcelファイルをダウンロードできるようにしています。
これを使えば、一からExcelを作り込む必要もありませんよ。ファイルを手にした瞬間、作業スピードは一気に早まります!是非使ってみてくださいね。
では本編スタートです!
Contents
『シート内のグラフを一気に削除する』には?まずは問題を整理しよう!
今回解決するのは特定のシート内のグラフを一気に削除するいう作業をExcelにまかせて手軽に自動で終わらせるというもの。
この作業を手作業で行うには、
- 削除するグラフを目視で確認
- これを選択してを削除
という手順をとるのが普通ですが、グラフが非表示にされているセルにある場合、目視ではグラフを見落としてしまいます。
上記のような状態のグラフの参照先のデータが削除されているという場合には、グラフの参照先がおかしいと何度も何度もエラーメッセージが表示され、「イラッ」としてしまうこともあるのではないでしょうか。
グラフを削除するという単純な作業ですが、思いがけず時間を要してしまう可能性があるこの作業をExcelで自動化してしまいましょう!
『シート内のグラフを一気に削除する』解決の方針をチェック!
ここでは、シート内のグラフを一気に削除するという作業をExcelに実施させるためにはどうすればよいかをみていきます。
一つひとつ手作業で行うには、上で書いた
この作業を手作業で行うには、
- 削除するグラフを目視で確認
- これを選択してを削除
いう作業が必要でしたよね?
今回はこの手順をExcelのマクロ(VBA)をつかって自動で行っていくことにしましょう。この作業をExcelマクロにやらせるのは実はシンプル!下の関連記事に書いたように、マクロは同じ作業を繰り返すのが得意ですので、この機能を活用します。
グラフを削除という作業をグラフの数だけ繰り返し実行するということをVBAで書けば今回のシート内のグラフを一気に削除するという作業は一発で且つ一瞬で完了!
しかも処理はプログラムした内容に従って、いつでも何度でも実施できるので、処理を間違ってしまうということもありません!
『シート内のグラフを一括で削除する』作業をExcelで解決!
ではシート内のグラフを一括で削除するという課題を解決する、具体的なマクロの記述をみていきましょうね!VBAで書いたリストは次の通りです!
'***********************************************************
'** 仕事サクサク!定時退社のために EXCEL GO! GO!
'** (URL:https://excelgogo.net/)
'** 是非ご活用ください♪
'***********************************************************
Sub シート内のグラフ全てを削除する()
Dim i As Integer, j As Integer
Dim wordfilename As String
Dim objChart As Object
'
On Error GoTo Error1 'エラーが生じたらError1へ
Application.DisplayAlerts = False '確認画面を「非表示」に
Application.ScreenUpdating = False '画面の遷移をストップ
Application.EnableEvents = False 'イベント制御
Application.Calculation = xlCalculationManual '自動計算をストップ
'
For Each objChart In ActiveSheet.ChartObjects
With objChart
.Chart.Parent.Delete
End With
Next
'
Error1:
Application.DisplayAlerts = True '確認画面を「表示」に
Application.ScreenUpdating = True '画面の遷移を再開
Application.EnableEvents = True 'イベント制御解除
Application.Calculation = xlCalculationAutomatic '自動計算開始
'
End Sub
For NextとWith End withを使って、グラフを削除するという作業をグラフの数だけ繰り返し行わせています。この部分はわずか5行!
ソースは至ってシンプルですが、このようにいくつグラフがあっても
あっという間に全てのグラフを削除してしまことができるんですよ!
まとめ
今回は、『シート内のグラフを一括で削除する』という作業をExcelのマクロをつかって自動化し、作業を効率化する方法を紹介しました。
For NextとWith End withを活用して、シート内のグラフの数だけ「グラフを削除」するという操作を繰り返すところがポイントです。
上で紹介したExcelファイルも是非お使いくださいね。プログラムを書く時間も短縮できると思います。
ある機能をExcelで実現するとき、その方法は一つだけとは限りません。
ExcelVBAで使用できる機能をフルに使ってシンプルに作ることもできます。ただこれにはそれなりの勉強が必要。すぐには使えず、今すぐ問題を解決したいとい状況にはあいません。ですので、このブログで紹介するマクロは、できるだけ簡単なもの、VBAにそう詳しくなくても読めそうなもの、手を加えやすいものになるように心がけています。
マクロって難しそう、と敬遠していた方にマクロって意外とお手軽ね!と感じていただき、これを応用すればあの作業も自動化できるかも!と次のステップやアクションにつなげていただければと思います。
Excelのスキルを一気に向上させて、ライバルに差をつけたい、仕事を一気にさばいてスピードアップしたい、スキルを身に着けて転職や就職に役立てたいと思ったあなた!ぜひ下のボタンをクリックしてください!
募集締め切りが迫っているので、期間限定で「短期間で実力の向上が見込めるお手頃な方法」を紹介していますよ。
ホントは管理人Goも早く知りたかった!オンラインブートキャンプで、見やすいデータをより早く仕上げる Excel術をマスターしよう!
『シート内のグラフを一括で削除する』Excelサンプルをプレゼント
今回紹介したシート内のグラフを一括で削除できるマクロを実装したExcelファイル、プログラムを記載したbasファイルが下からダウンロードできます。
delete_all_graphs.xlsm
delete_all_graph.bas
お好きな形式のファイルをダウンロードして、実際に動かしてみたり、あなたの課題にあわせてExcelを調整して作業時間短縮、効率化に役立ててみてください!
basファイルって何?どう使うの?という方やマクロはどのようにして実行するの?と疑問に思った方は、関連記事もチェックしてみてくださいね。
最新情報をお届けします
Twitter でExcel GO! GO!をフォローしよう!
Follow @go_excelコメント
この記事へのトラックバックはありません。
この記事へのコメントはありません。