ヒガサラblog

サラリーマン向けに、仕事を効率良く進めていくための方法についてご紹介しています。プログラミングから対人スキルまでを幅広く掲載中。

ヒガサラblog

【VBA】セルの削除方法!セルごと削除 or 入力データだけ削除する!

f:id:yshgs_elec:20201028220034j:plain

この記事ではVBA実行中にセル(の中身)を削除する方法について解説します。

 

◆この記事で学べる内容

〇セルの中の入力情報だけを削除する方法

〇セルごと削除し、セルを上に詰める方法

〇セルごと削除し、セルを左に詰める方法

 

この記事の内容をしっかりと理解しておかなければ、

中身の情報だけを削除したかっただけなのに、セルごと消えてしまった。

⇒せっかくつくったシートの配置がぐちゃぐちゃに!

なんてことになりかねません。

 

こんなことにならないためにも、ぜひ最後までご覧ください。

 

それではさっそくやっていきます!

 

はじめに

ただ単にやり方だけを説明してもイメージがわかないと思いますので、今回はあらかじめ以下の画像のような情報が入力されている状態からスタートします。

f:id:yshgs_elec:20201028211845j:plain

今回はこの中のB2セルに記載されている e の文字を削除していきます。

 

セルの中の入力情報だけを削除する方法

 早速ですが本題に入っていきます。

セルの中の情報だけを削除するには以下の2通りのやり方があります。

 

パターン①:ClearContentsを使う場合

Range("セル名").ClearContents

 

パターン②:=""を使う場合

Range("セル名") = ""

 

具体的な使用方法としては

パターン①:Range("B2").ClearContents

パターン②:Range("B2") = ""

どちらのパターンを使用してもマクロの実行結果は以下のようになります。

f:id:yshgs_elec:20201028212301j:plain

 

基本的にはどちらを使っても大きな差はありませんので、使いやすい方を覚えておきましょう。

※個人的にはちょっとめんどくさいですが、パターン①の方がかっこよくて好きですね。

 

というわけで、ここまでがセルの情報だけを削除し、セルを空欄にする方法でした。

 

セルごと削除し、セルを上に詰める方法

 ここからはセルごと削除する方法に移っていきます。

まずはセルを削除し、その他のセルを上に詰める方法についてです。

 

基本的な使いかたはセルを指定して、その後ろに.Deleteを付けるだけです。

 

具体的な使用例

Range("B2").Delete

もしくは

Range("B2").Delete Shift:=xlUp

 

この処理コードを先ほどの例に適用すると以下の画像のようになります。

f:id:yshgs_elec:20201028213507j:plain

しっかりとB2セルに記載されていたeの文字がなくなり、その下にあったfがずれ込んできていますね。

 

※基本的に.Deleteだけで上に詰めるようになっていますので、上に詰める場合は特に気にする必要はありません。

ただ、後程紹介する左に詰める場合と使い分ける必要があるときは、

Shift:=xUpを記載しておくと見返すときにわかりやすくなります。

 

セルごと削除し、セルを左に詰める方法

 次はセルを削除し、その他のセルを左に詰める方法についてです。

 

基本的な使いかたは、先ほど紹介した上に詰める方法とほぼ同じで、詰める方向を記載するだけです。

 

具体的な使用例

Range("B2").Delete Shift:=xlToLeft

先ほどと違ってShift:=xlToLeftの部分は削除できませんので注意が必要です。

 

この処理コードを先ほどの例に適用すると以下の画像のようになります。

f:id:yshgs_elec:20201028213806j:plain

先ほどの上に詰めるパターンではB2セルの下にあったfがスライドしてきていたのに対して、今回は右側にあったhがスライドしてきていることがわかると思います。

つまり空欄になったB2セルが左詰めで埋められたということですね。

 

セルの削除スキルまとめ

セルの情報だけ削除する場合

Range("セル名").ClearContents

Range("セル名") = ""

 

セルごと削除する場合

〇上に詰める

Range("セル名").Delete

Range("セル名").Delete Shift:=xlUp

〇左に詰める

Range("B2").Delete Shift:=xlToLeft

 

安易に削除=Deleteだ!

と覚えておくと痛い目を見ますので、しっかりと違いを把握しておきましょう。

 

終わりに

というわけで今回はセルの削除方法をいくつかのパターンにわけてご紹介しました。

冒頭にも説明したように、きちんと覚えておかなければ、せっかく作ったシートがぐちゃぐちゃになりかねません。

 

ぜひこの記事の内容は、しっかりと覚えておきましょう。

 

このように、このブログでは、エクセル(VBA)を中心に、様々な業務効率化スキルを紹介しています。

■業務の生産性を上げたい。

■早く帰って子供と遊びたい。

こんな人はぜひ他の記事も読んでみてください。

 

また、VBAを使ってこんなことがしたいんだけど、やり方がわからない、という悩みを抱えているかたは、お気軽にコメント欄から質問してください。

私にわかる範囲であればご協力いたしますので。(もちろん無料です。)

 

最後に・・・

この記事が役に立ったという方はぜひ応援よろしくお願いします。

 ↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

にほんブログ村 IT技術ブログへ
にほんブログ村

 

Twitterもやっていますので、興味があれば覗いてみてください。

それではまた!!

 

 オススメ記事

www.higashisalary.com

www.higashisalary.com