Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、
「VBA100本ノック」に対する私の回答と解説のページです。
100本ノックの出題リストはこちらから
excel-ubara.com
出題:ダブルクリックでセル結合を解除
#VBA100本ノック 69本目
全シートを対象として、結合セルをダブルクリックしたらセル結合を解除して全てのセルに元の値を入れてください。
セル結合を解除した場合はダブルクリックによるセル編集状態にならないようにしてください。
ただし、結合セル以外の場合は通常の動作のままにしてください。

◇ 出題ページはこちら
ソースコード
ThisWorkbookモジュール
Option Explicit ' 100本ノック069:ダブルクリックでセル結合を解除 Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) If Target.MergeCells = True Then Target.UnMerge Target.Value = Target.Cells(1).Value Cancel = True End If End Sub
解説
非常にシンプルな問題でしたね。
「全シートの共通イベントを一括で書く」場合は、
Workbook_SheetBeforeDoubleClickイベントを活用することが出来ます。
これの知識を問う問題とのことですので、
知らなかった方はこの機会にぜひ覚えておいてください。
全シートにWorksheet_BeforeDoubleClickを書くより簡単なことも多いので、
状況に応じてうまく使い分けましょう。