Alanは、他の誰かが作成したブックにマージされているセルをすばやく簡単に特定する方法があるかどうかを尋ねました。実際には、これらのセルを識別するにはいくつかの異なる方法があります。

セルを識別する1つの方法は、Excelの検索機能を使用することです。次の手順に従ってください:

。 Ctrl + Fを押します。 Excelは、[検索と置換]ダイアログボックスの[検索]タブを表示します。

。必要に応じて、[オプション]ボタンをクリックして、[検索と置換]ダイアログボックスが展開され、すべてのオプションが表示されていることを確認します。 (図1を参照)

。 [検索する文字列]ボックスが空であることを確認してください。

。 [検索する文字列]ボックスに挿入ポイントを置き、[フォーマット]ボタンをクリックします。 Excelに[形式の検索]ダイアログボックスが表示されます。

。 [配置]タブが表示されていることを確認します。 (図2を参照)

。 [セルをマージ]チェックボックスがオンになっていることを確認します(チェックボックスがオンになっているはずです)。

。 [OK]をクリックして、[形式の検索]ダイアログボックスを閉じます。

。 [すべて検索]をクリックします。

Excelは結合されたセルを検索し、それらが見つかった場合は、[検索と置換]ダイアログボックスの下部にセルが表示されます。次に、見つかった範囲の1つを選択すると、対応する範囲がワークシートで選択されます。

必要に応じて、マクロを使用して、ワークシート内のさまざまな結合セルを見つけることができます。次のマクロは、おそらくこれを行う最も簡単な方法を示しています。

Sub FindMerged1()

Dim c As Range     For Each c In ActiveSheet.UsedRange         If c.MergeCells Then             MsgBox c.Address & " is merged"

End If     Next End Sub

この特定のマクロは、ワークシート内のすべてのセル(少なくとも、UsedRangeにあるセル)をステップスルーし、セルが結合されたセルの一部である場合は、メッセージボックスが表示されます。チェックされている関連プロパティはMergeCellsプロパティであることに注意してください。セルが別のセルとマージされる場合、これはTrueに設定されます。

もちろん、このようなマクロは、ワークシートに多数のセルがある場合は実行にかなり長い時間がかかり、それらのセルのかなりの数がマージされている場合はさらに長くなる可能性があります。マージされた各セルで停止せず、ダイアログボックスが表示されない場合、マクロはより高速に実行されます。次のバージョンは異なるアプローチを取り、マージされた各セルを黄色で塗りつぶします:

Sub FindMerged2()

Dim c As Range     For Each c In ActiveSheet.UsedRange         If c.MergeCells Then             c.Interior.ColorIndex = 36         End If     Next End Sub

このアプローチのバリエーションは、セルがマージされた場合に単にTrueまたはFalseを返すユーザー定義関数を作成することです。

Function FindMerged3(rCell As Range)

FindMerged3 = rCell.MergeCells End Function

この単純な関数を使用すると、条件付き書式を使用して、セルがマージされている場合にセルを何らかの方法で強調表示できます。 (関数がTrueを返す場合、条件付き書式は、セルに指定した書式を適用します。)

最後に、ワークシートにマージされるセルのリストが必要な場合は、セルに色を付ける代わりに、マクロでリストをまとめることができます。

Sub FindMerged4()

Dim c As Range     Dim sMsg As String

sMsg = ""

For Each c In ActiveSheet.UsedRange         If c.MergeCells Then             If sMsg = "" Then                 sMsg = "Merged worksheet cells:" & vbCr             End If             sMsg = sMsg & c.Address & vbCr         End If     Next     If sMsg = "" Then         sMsg = "No merged worksheet cells."

End If

MsgBox sMsg End Sub

このバリエーションでは、マクロの最後に1つのメッセージボックスが表示され、ワー​​クシートにあるマージされたセルのアドレスが示されます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(12385)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。

Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります: