まえきんブログ

*文系出身SEが綴る、日常・趣味・体験談・スキルアップについての雑記ブログ*

【事例で学ぶExcel VBA #8】セル結合を解除する


まえきんです!

このシリーズでは、私が普段実務で手作業の自動化ツールを作成する中で実装している

処理の一部をピックアップし、ブログ掲載用にカスタマイズしたものをご紹介しています。

全て私の実務ベースで使っているものなので、使いこなすことが出来れば、

必ずや手作業の自動化に一役買ってくれる内容ばかりと勝手に自負しています笑 😁

「本だけじゃなくてExcel VBAを実践的に勉強してみたい!」「ハードル高くて苦手だった

けどもう一度VBAを勉強してみたい!」「実務で役に立つVBAを学びたい!」そんな方々の

学習意欲向上の一助になればと思い、このシリーズを投稿しようと思いました。

私自身もこのシリーズの投稿を通じて、新しい知識の習得、習得した知識の棚卸しや

ブラッシュアップをしていきます😊一緒に楽しくスキルアップしていきましょう!!👍✨

👇さて、今回のテーマはコチラ

#8:セル結合を解除する

セル結合は、普段のエクセルを扱う際やVBAのマクロを組む上で色々と不都合が生じます。

ネット上でもTwitter上でも、セル結合に対するいい意見はあまり見受けられない印象です。

👇関連したネット記事を見つけました
forest.watch.impress.co.jp

今回はこうした不都合を発生させないために、

セル結合を解除するマクロについてご紹介します👍

ツールの全体像


まずは任意のエクセルシートに上記のように行・列それぞれにセル結合しておき、

それを解除するためのコントロールボタンを配置しておきます。

本ツールのVBAコードは以下の通りです。

VBAコード ※パソコンでの閲覧推奨
Option Explicit
'===================================================
'ツール名:セル結合解除
'作成日:2022/05/28
'処理概要:セル結合解除
'付属機能:なし
'作成者:まえきん
'===================================================
'===================================================
'関数名 :メイン関数(セル結合解除ボタン)
'処理内容:セル結合を解除する
'トリガー:セル結合解除ボタンを押下した際にコールされる
'引数  :なし
'戻り値 :なし
'===================================================
Private Sub CommandButton1_Click()
    '----------
    'セル結合の解除
    '----------
    With Worksheets("セル結合解除")
        '行のセル結合解除
        .Range("A3:E3").UnMerge
        '列のセル結合解除
        .Range("A6:A20").UnMerge
    End With
End Sub
VBAコード解説

メイン関数(セル結合解除ボタン)
'----------
'セル結合の解除
'----------
結合セルを解除するには、RangeオブジェクトのUnMergeメソッドを使います。

結合されているセルの中の「任意の1つ以上のセル」を指定すれば結合セルを解除できます。

注意点としては、結合セルの中の一部だけ解除は出来ないことです。

今回の事例ではセル範囲A3:E3、A6:E20の結合が解除されることになります。

マクロ実行結果

セル結合解除ボタン押下

上記の通り、結果が得られましたでしょうか😊

セル結合の解除機能があるということはもちろん、結合機能もあります。

Mergeメソッドを指定すれば結合を指定することも可能です。ですがこちら、

少なくとも私の実務上ではあまり出番はありません😅日々の業務で色んな人から資料として

送られてくるエクセルのフォーマットがセル結合のオンパレードなので、ツール実装の中で

フォーマット成形の一環で今回ご紹介したセル解除を機能を搭載することがほとんどです。

心の中ではいつも泣きながら🤣同じような境遇の方がいらっしゃれば、事象としては

決して良くはないですが仲間がいて嬉しいです🤣

今回はこれで以上です😊

最後まで読んで頂きありがとうございました!ではまた!