本コーナーでは、私が普段実務で手作業の自動化ツールを作成する中で実装している
処理の一部をピックアップし、掲載用にカスタマイズしたものをご紹介していきます。
全て私の実務ベースで使っているものなので、使いこなすことが出来れば、必ずや
手作業の自動化に一役買ってくれる内容ばかりと勝手に自負しています。
「本だけじゃなくてExcel VBAを実践的に勉強してみたい!」
「ハードル高くて苦手だったけどもう一度VBAを勉強してみたい!」
「実務で役に立つVBAを学びたい!」
そんな方々の学習意欲向上の一助になれば大変嬉しく思います。
おススメ書籍
今回のテーマはこちらです👇
#8:セル結合を解除する
セル結合は、普段のエクセルを扱う際やマクロを組む上で色々と不都合が生じます。
ネット上でも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メソッドを指定すれば結合を指定することも可能です。
ですがこちら、少なくとも私の実務上ではあまり出番はありません。
日々の業務で色んな人から資料として送られてくるエクセルのフォーマットが
セル結合のオンパレードなので、ツール実装の中でフォーマット成形の一環で
今回ご紹介したセル解除を機能を搭載することがほとんどです。
心の中ではいつも泣きながら。。。同じような境遇の方がいらっしゃれば、
事象としては決して良くはないですが仲間がいて嬉しいです。
今回はこれで以上です😊
最後まで読んで頂きありがとうございました!ではまた!
コメント