【すぐ使える】シート全体のセル結合を解除する方法!【Excel VBA】
こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!
今回はこのような悩みについて解説します。
シート全体の結合セルを一括で解除する方法を教えて!
- セル結合を解除する方法
- セルを結合する方法
- シート全体に処理をする方法←超重要
セル結合を解除する方法 – サンプルコード紹介
セル結合を解除するには「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オブジェクト」で値が返ってくるためセル範囲を指定する場合は使いやすいです。
まとめ
- セル結合を解除は「UnMergeメソッド」
- セルを結合は「Mergeメソッド」
- シート全体に処理をするには「ActiveSheet」と「UsedRangeプロパティ」
今回はシート全体のセル結合を解除する方法を解説しました。
特にシート全体に処理を実行させる方法は他のメソッドを使う時にも活用できるので、今回のパターンを覚えておきましょう!
この記事で少しでも皆さんのお役に立てれば幸いです!
忘れないうちにお気に入り登録もお願いします!
ありがとうございました!
コメントはお気軽に!