ボタン1つでデータを削除して上に詰める! #Excel #LifeHacks #Office
私がよく困っていたのが、参加者リストみたいな表で「途中の行だけ不要になった」とき。Delete(行削除)をすると表のサイズが変わったり、数式・書式・テーブルが崩れたりして地味にストレスでした。そこで「選択した行のデータだけを消して、上に詰める」=一括消去ボタンを作るとかなり楽になります。 やりたいことは大きく2つです。 1) アクティブセル(選択行)を基準に、必要な列(例:C列〜D列)の値だけをClearContentsで消す(行削除ではない) 2) 下のデータを切り上げて、空いた分を上方向に詰める(Insert Shift:=xlDown などの挙動で埋める) ポイントは「どこまでを表の範囲とみなすか」を決めておくこと。例えば見出しが12行目までで、データは13行目から…のように固定なら、行番号が範囲外の時は処理を終了させると安全です(例:r<13 または 最終行より大きい場合はExit Sub)。複数セルを選択している時は、ActiveCell.Rowだけで動くようにしておくと誤動作しにくいです。 ボタン化の流れは、(1) 開発タブ→挿入→ボタン、(2) マクロ名(例:DeleteSelectedData)を作成、(3) そのマクロをボタンに割り当て、でOK。使う側は「消したい行をクリック→ボタン」だけなので、Excel初心者でも運用しやすいです。 ついでに「エクセル容量軽くする方法」も、私はこの作業とセットでやっています。不要データを消しても容量があまり減らない時は、 ・不要なシート/名前の定義の残骸 ・条件付き書式が広範囲にかかっている ・使っていない列全体に書式が残っている ・画像やオブジェクトが多い ・ピボット/外部データのキャッシュが残っている あたりが原因になりがちです。まずは「最後の使用セル(最終行・最終列)」が変に伸びていないか確認して、不要な書式やオブジェクトを整理すると体感で軽くなります。 私は、日々の入力表は“ボタンで一括消去→必要なら上に詰める”、定期メンテでは“書式やキャッシュの見直し”という2段構えにしてから、ファイルが重くて固まることが減りました。まずは小さな表でマクロを試してから本番ブックに入れるのがおすすめです。