エクセルにデータを張り付けたら一行飛ばしで張り付けられてしまう。
空欄セルを全部削除したい。
それなら5秒でできるね。
テキストデータやネット上の情報をコピーしてエクセルに張り付ける際に、空白セルが間に入ってしまって困っている人は多いのではないでしょうか?
そんなときに一つ一つ選択していては日が暮れてしまいます。
この記事ではそのような状態を一瞬で解決できる方法をご紹介します。
非常に便利ですので、ぜひマスターしておきましょう。
それでは早速やっていきましょう!
例題確認(飛び飛びの空欄セル)
例として、先日私が書いた学習リモコンの設定手順をコピーし、エクセルに張り付けってみましょう。
以下のように飛び飛びで張り付けられてしまいました。
この間に入った空欄を一括削除していきます。
空欄セルの一括削除方法
方法はとっても簡単。
まずは張り付けたデータを選択してCtrl + G を押します。
すると以下のようなウィンドウが出てきます。
次にその中のセル選択を押します。
すると以下のようなウィンドウに変化します。
この中から空白セルを選択しOKを押します。
すると以下のように空白セルだけが灰色になります。
この状態が空白セルだけが選択されている状態になります。
※この状態で安易に他の場所を触ると選択が解除されるので注意。
次に先ほど選択された空欄セルの上にカーソルを持っていき、マウスの右クリックします。
すると以下のようなメニューが表示されますので、その中の削除を選択します。
すると以下のようなウィンドウが出てきます。
これは空欄を削除した後に他のセルをどう動かすかを指定するものになります。
今回は縦に並んでいるので上方向にシフトを選択します。
OKボタンを押すと以下のように空欄セルが削除され、データが隙間なく詰まっています。
少し手順が多いように思うかもしれませんが、慣れてしまえばこれくらい5秒で終わりますよ。
というわけでここまでが空欄セルを一括で削除する方法になります。
VBAへの組み込み方法
簡単に終わるとはいえ、こういった作業を頻繁に行う必要がある場合、毎回さきほど紹介した作業を行うのは非常に面倒だと思います。
ここからは先ほどの処理をVBAで自動実行する方法をご紹介します。
※VBAの使用方法については以下の記事を参考にしてください。
【初心者用】エクセルマクロ(VBA)の始め方を詳細解説 – ヒガサラblog
早速ですが、空欄セルを削除するVBAコードをご紹介します。
今回はA1セルに未知の行数のデータを張り付けたことを想定してコードを書いています。
張り付ける場所に応じてコードを書き換えてください。
Sub blank_delete()
n = Range("A1000").End(xlUp).Row
Range(Cells(1, 1), Cells(n, 1)).Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
End Sub
たったのこれだけです。
このコードでやっていることとしては、
① n = Range(“A1000”).End(xlUp).Row
⇒データ群の一番下の行はどこなのかを探索。
⇒②の処理をするために必要なため。
※1000行よりも多い場合は適宜A10000等に書き換えてください。
②Range(Cells(1, 1), Cells(n, 1)).Select
⇒空欄セルを含んだ領域を選択。
③Selection.SpecialCells(xlCellTypeBlanks).Select
⇒②で選んだ領域 から空欄セルのみを選択する。
⇒Ctrl + Gからの空欄選択の部分ですね。
④Selection.Delete Shift:=xlUp
⇒③で選んだ空欄セルを削除し、間は上に詰める。
複雑なコードに見えても、通常のエクセルシートでやったこととおなじですね。
おわりに
というわけで今回はエクセルシートに発生した飛び飛びの空欄セルを削除する方法をご紹介しました。
覚えているかいないかで業務効率が大きく変わってきますので、ぜひマスターしておきましょう。
このブログではエクセルを中心とした業務効率化スキルを多数紹介しています。
興味があればその他の記事も読んでみてくださいね。
※ブログ村にも参加しております。
このブログを応援してもいいよ、という方は以下をポチっていただけると嬉しいです。
Twitterもやっていますので、興味があればフォローよろしくお願いします。
それではまた!
コメント