マコト2017/9/102018/12/17ExcelVBAでは、Merge・UnMerge・MergeCellsを使用してセルの結合と解除を行うことができます。・セルが結合されているかを判定する方法など応用的な使い方についても解説していきます。Excelでは、見栄えを理由にセルを結合することがしばしばあります。ExcelVBAから結合されたセルを扱うこともあります。そのようなときのために、例を交えながら詳しく解説していきます。まとめセルの結合とはExcelでは、セルを結合することができます。セルを結合するためには、次の画像のようにセルを選択した状態で、ツールバーからセルの結合を選択します。結合されたセルは、次の画像のように表示されます。Excelではセルの結合を解除することができます。セルの結合を解除するためには、次の画像のようにセルを選択した状態で、ツールバーからセル結合の解除を選択します。結合が解除されたセルは、次の画像のように表示されます。セルを結合、解除する方法ExcelVBAでは、セルの結合と解除を行うことができます。Mergeでセルを結合する方法Mergeメソッドでセルを結合するためには、次のように記述します。Range("開始セル:終了セル").Merge開始セルは範囲の一番左上のセルで、終了セルは範囲の一番右下のセルです。次の画像のような場合、開始セルがB2になり、終了セルがD3になります。次のサンプルコードでは、セルB2からセルD3までの範囲を結合するためRange("B2:D3").Mergeとしています。Sub[実行結果]実行結果の画像のセルB2からセルD3までの範囲が結合されていることが確認できます。1行ずつまとめて結合する方法Mergeメソッドは引数にTrueもしくはFalseを指定することができます。Trueを指定した場合はセル範囲を行ごとに結合することができます。指定を省略した場合の既定値はFalseです。引数をTrueで指定した場合について、サンプルコードで確認しましょう。Sub[実行結果]UnMergeでセルの結合を解除する方法UnMergeメソッドでセルの結合を解除するためには、次のように記述します。Range("開始セル:終了セル").UnMerge次のサンプルコードでは、セルB2からセルD3までの範囲の結合を解除するためRange("B2:D3").UnMergeとしています。Sub[実行結果]実行結果の画像のセルB2からセルD3までの範囲の結合が解除されていることが確認できます。Trueとしています。Sub[実行結果]実行結果の画像のセルB2からセルD3までの範囲が結合されていることが確認できます。Falseとしています。Sub[実行結果]実行結果の画像のセルB2からセルD3までの範囲の結合が解除されていることが確認できます。このようにMergeCellsプロパティにTrueを指定するとセルの結合を行うことができます。Falseを指定するとセルの結合の解除を行うことができます。結合したセルの値を取得する方法セルの値を取得するためには、Valueプロパティを使用します。Range("セル名").Value例えば、次の画像のような年月を含む表があるとします。Range("B3").Valueとしています。Range("B4").Valueとしています。Sub[実行結果]実行結果の2つの画像を比較すると2番目のサンプルだけ値が設定されていません。これは結合したセルでは、先頭のセルだけが値を持つためです。そこで、結合したセルの値を取得するために、次の通りMergeAreaプロパティを使用します。Sub[実行結果]実行結果の画像から結合されたセルの値が取得されたことが確認できます。次のようにMergeCellsプロパティでセルが結合されているかを判定することができます。MsgBox("結合されている。MsgBox("結合されていない。その後、結合されているか、結合されていないかをメッセージボックスで表示しています。実行後の画像からセルが結合されているか判定したことが確認できます。If文については、こちらで詳しく解説していますので確認してください。2019年9月26日MergeAreaで結合しているセルの範囲を取得する方法MergeAreaプロパティで結合しているセルの範囲を取得するためには、次のように記述します。Range("B2").MergeAreaとしています。Sub[実行前][実行後]確認の為に、mArea.Selectで結合されたセルを選択しています。実行後の画像から、セルB2の結合している範囲が取得されていることが確認できます。まとめいかがでしたか?今回は、セルの結合と解除について解説しました。Excelで見栄えを整えるのは時間がかかりますので、ExcelVBAで自動化してみるのもいいですね。ExcelVBAでセルの結合と解除を行う機会があれば、この記事を思い出してみてください!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。マコトフリーランスのエンジニアです。最近では、プログラミング関連の記事を作成するライターとしても活動しています。趣味と業務の両方でプログラミング言語をいくつも学んできたのでその経験を活かして分かりやすい記事を作成できればと考えています。