【すぐ使える】シート全体のセル結合を解除する方法!【Excel VBA】

こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!

今回はこのような悩みについて解説します。

ルウちゃん

シート全体の結合セルを一括で解除する方法を教えて!

この記事でわかるようになること
  1. セル結合を解除する方法
  2. セルを結合する方法
  3. シート全体に処理をする方法←超重要
目次

セル結合を解除する方法 – サンプルコード紹介

セル結合を解除するには「UnMergeメソッド」を使っていきます。

まずはサンプルコードと実行画面を見て動きを確認してください!

サンプルコード
ActiveSheet.UsedRange.UnMerge
実行前
実行後

このように赤枠で囲っているところのセル結合がすべて解除されました。

VBAでマクロを実行させるとセルが結合されているせいでうまく処理されないことがあります。

そのような時はこのコードを実行させ、セル結合をすべて解除しましょう!

セル結合を解除する方法 – 「UnMergeメソッド」とは?

記述方法
オブジェクト.UnMerge

セル結合を解除するには「UnMergeメソッド」を使いましょう。

このメソッドは「Rangeオブジェクト」に対して、実行してください。

「Rangeオブジェクト」とは「A1」のように指定されたセルの塊のことを言います。

たとえば「B列」や「B2:D5」のように列や範囲を指定して使うことも可能です。

セルを結合する方法 – 「Mergeメソッド」とは?

記述方法
オブジェクト.Merge

セルを結合させるには「Mergeメソッド」を使います。

使い方は「UnMergeメソッド」と同じように「Rangeオブジェクト」に対して実行させてください。

VBAでセルを結合させることは少ないので、知っておく程度で大丈夫です。

シート全体に処理を実行させる方法

記述方法
ActiveSheet.UsedRange.メソッド

シート全体に処理を実行させるには、「ActiveSheet」と「UsedRangeプロパティ」を組み合わせます。

ActiveSheet」では現在使用中のシートに対して、処理をすることができます。

UsedRangeプロパティ」は使用中のセル範囲全てに処理を実行することができます。先程説明した「Rangeオブジェクト」が返ってくるので使うことができます。

これらを組み合わせることでシートのすべてのセルに対して処理を実行できます。

しかし、「UsedRangeプロパティ」はセルが空白であったとしても、書式が変わっているだけで範囲に含まれてしまうという欠点があります。その辺は理解して使っていきましょう。

ルウちゃん

書式が変わっているだけも使用中のセルと認識されてしまうのか。
ほかにも範囲指定する方法があったら教えてほしいな。

セル範囲の指定では「CurrentRegionプロパティ」を使ったほうがいい場面もありますのでどちらも使えるようにしておきましょう。こちらも「Rangeオブジェクト」で値が返ってくるためセル範囲を指定する場合は使いやすいです。

まとめ

この記事のまとめ
  1. セル結合を解除は「UnMergeメソッド」
  2. セルを結合は「Mergeメソッド」
  3. シート全体に処理をするには「ActiveSheet」と「UsedRangeプロパティ」

今回はシート全体のセル結合を解除する方法を解説しました。

特にシート全体に処理を実行させる方法は他のメソッドを使う時にも活用できるので、今回のパターンを覚えておきましょう!

この記事で少しでも皆さんのお役に立てれば幸いです!

忘れないうちにお気に入り登録もお願いします!

ありがとうございました!

/// お得な情報 ///

すぐに使えて便利なテクニックが650個も手に入る!

気になる人は今すぐクリック!!

 

目次