【Excel/マクロ】複数のセルを結合しても文字を残す!初心者でも作成できる手順を解説!

エクセルでセルを結合しても文字を残す方法

Excel(エクセル)で複数のセルを結合すると左上のセルの文字は残りますが、残りのセルの文字は全て消えてしまします

セルを結合すると左上のセル以外は消える
セルを結合すると左上のセル以外は消える

結合後のセルにすべてのセルの文字を残すためには、別のセルにいったんコピペしてから、再度結合されたセルに転記する必要があり、手作業では時間がかかってしまいます

今回は複数のセルを結合しても文字を残すことが出来るマクロを作成することで、下のように『すべての文字を残すセルの結合』が一瞬で出来る機能を作成します。

👇『すべての文字を残すセルの結合』のイメージ

セルを結合してもすべてのセルの文字を残す
セルを結合してもすべてのセルの文字を残す

マクロといってもプログラムを作成するわけでなく、コードの貼り付けだけですぐに完了するので安心してね。

このマクロを一度作成しておくと、そのエクセルブックを開いた状態であれば別のエクセルブックにも使うことが出来ます。

また、マクロの中で『すべての文字を残すセルの結合』用のショートカットキー「Ctrl」+「Shift」+「Q」を作成します。

マクロといっても、この記事に貼り付けられている『VBAのコード』をエクセルのとある画面に貼り付けるだけで完了します。

初心者でも手順どおり作業すれば2分~3分で作業は完了するので、頑張ってみてくださいね!

最後の見出しでは、マクロを使用したくない人のために、関数を用いて極力工数をかけないセルの結合方法も合わせて紹介します。

『セルの結合』の仕組みを理解しよう

ます「セルの結合」の仕組みをおさらいしましょう。

結論から言うと、セルを結合した際に残される文字は、最も左上に入力されている文字だけが残ります。

「セルの結合」は最も左上が文字だけが残る
「セルの結合」は最も左上が文字だけが残る

例えば、下の表のB3セルからD6セルまで選択してから「ホーム」タブの「セルを結合して中央揃え」を選択してみます。

複数の文字が挿入されたセルを結合するとどうなるか?
複数の文字が挿入されたセルを結合するとどうなるか?

そうすると、「セルを結合すると、左上の値のみが保持され、他のセルの値は破棄されます」という注意が表示されますが、結合するために「OK」を押します。

左上以外のセルの値は破棄されることが表示
左上以外のセルの値は破棄されることが表示

そうすると、セルの結合後は左上の値だけが残り、残りの値は破棄されました。

セルの結合後は左上の値だけが残り、残りの値は破棄
セルの結合後は左上の値だけが残り、残りの値は破棄

今後は、B3セルとC3セルが空白セルだった場合、セルの結合を行うとどうなるでしょうか?

左上に空白セルがある場合、セルの結合後に残る値は?
左上に空白セルがある場合、セルの結合後に残る値は?

この場合、B3セルとC3セルが空白セルのため、次に優先度が高いD3セルの値が残され、残りの値は破棄されます。

空白セルがある場合は、値の入力された左上のセルの値が残る
空白セルがある場合は、値の入力された左上のセルの値が残る

このように、「セルの結合」をどんな複数セルに対して行っても、残される値は左上のセルだけで残りの文字は破棄されてしまいます。

今回の記事では、この破棄される値も残した状態でセルの結合を行う方法の紹介です。

『文字を残すセルの結合』用のVBAコード

それでは、『すべての文字を残すセルの結合』用のVBAコードを紹介します。

下のコードをすべてVBAコード表に貼り付けることで、「Ctrl」+「Shift」+「Q」のショートカットキーで文字が消えないセルの統合が出来ます。

メモ帳などに、「'■ブックオープン時に実行」から、「End Function」までをコピペしておきましょう。

'■ブックオープン時に実行
Sub auto_open()
    '■ショートカットキー: Ctrl + Shift + Q
    Application.OnKey "+^Q", "call_CellMerge"
End Sub
 
'■文字を残してセル結合
Public Function call_CellMerge()
    Dim str As String
    Dim cells As Range
     
    '■選択範囲をループ
    For Each cells In Selection
        '■初回の場合足すだけ、初回以降はstrに足していく
        If str = "" Then
            str = cells.Value
        Else
            str = str & vbLf & cells.Value
        End If
        cells.Value = ""
    Next
    Selection.Merge
    Selection.Value = str
End Function

メモ帳に貼り付けた場合は、以下のようになります。あくまでも一時的な貼り付けで、このコードはすぐにエクセルに利用します。

メモ帳にマクロのコードを一時的に保存
メモ帳にマクロのコードを一時的に保存

引用元:文字を残したままセル結合する【Merge】【エクセルマクロ】 | VBA Create
https://vba-create.jp/vba-merge-cells-value/

『文字を残すセルの結合』のマクロを作成する手順

それでは早速、マクロを作成する手順を1つずつ説明していきます。

作業内容が理解できなくても手順どおりに行えば完成しますので安心してください!

手順1.「マクロの記録」をクリック

新規のExcelブックもしくはセルを結合したいExcelブックを開き、「表示」タブの「マクロの記録」をクリックします。

「表示」タブの「マクロの記録」をクリック
「表示」タブの「マクロの記録」をクリック

手順2.マクロ名を登録

「マクロの記録」画面が表示されますので、「マクロ名」に任意のマクロ名を入力し、「OK」をクリックし、マクロの記録を開始します。

「マクロの記録」画面でマクロ名を入力
「マクロの記録」画面でマクロ名を入力

手順3.マクロの記録を終了

マクロの記録を開始したばかりですが、次の工程でVBAコードを入力しやすいようにいったんマクロの記録を終了します。

マクロの記録をいったん終了
マクロの記録をいったん終了

手順4.Excelブックを「名前を変えて保存

「Ctrl」+「S」のショートカットキーを使って上書き保存すると、「次の機能はマクロなしのブックに保存できません」と問われるので、マクロ付のExcelファイルとして保存するために「いいえ」をクリックします。

次の機能はマクロなしのブックに保存できませんと問われる
次の機能はマクロなしのブックに保存できませんと問われる

手順5.ファイルの種類を「Excelマクロ有効ブック」にして保存
「名前を付けて保存」画面が表示されるので、任意のファイル名を入力します。

次にファイルの種類を「Excelマクロ有効ブック」にして任意の場所を指定して「保存」をクリックします。

「Excelマクロ有効ブック」にして保存
「Excelマクロ有効ブック」にして保存

手順6.「表示」タブの「マクロの表示」をクリック

マクロのVBAのコードを貼り付けるために、「表示」タブの「マクロの表示」をクリックします。

「表示」タブの「マクロの表示」をクリック
「表示」タブの「マクロの表示」をクリック

手順7.「編集」を選択

「マクロ」画面が表示されるのでVBAコードを貼り付けるために、編集をクリックします。

「マクロ」画面で「編集」をクリック
マクロ画面で「編集」をクリック

手順8.「VBAのコード」画面にコードを貼り付ける

「VBAのコード」画面が表示されますので、下の赤線の範囲に、事前にメモ帳等に保存したVBAコードを貼り付けてください。

画面を開いた時点で入力されている赤の点線内のデータはVBAコードの貼り付け時に上書きして消してください。

「セルの結合用」のVBAコードを貼り付ける
「セルの結合用」のVBAコードを貼り付ける

手順9.「VBAのコード」画面にコードを貼り付ける

VBAコードを貼り付け終えたら、画面右上の「×」で画面を閉じます。

これでマクロの編集は終了です。Excelファイルは忘れずに上書き保存しておきましょう。

VBAコードを貼り付けて「×」で画面を閉じる
VBAコードを貼り付けて「×」で画面を閉じる

マクロを使って『文字を残すセルの結合』を実行

それではマクロが登録されたExcelブックを使って、文字を残すセルの結合を実行してみましょう。

上の紹介でも触れましたが、このマクロが登録されているExcelブックを開いておけば、どのExcelブックにでも利用出来ます

手順1.マクロが保存されたExcelファイルを開く

マクロを保存したExcelファイルを開きます。リボンの下に「セキュリティ警告マクロが無効にされました」と注意が表示されている場合は、マクロを有効にするために「コンテンツの有効化」をクリックしてください。

「コンテンツの有効化」をクリック
「コンテンツの有効化」をクリック

手順2.『セルの結合用』ショートカットキーを利用

『文字を残してセルを結合』したい対象のセルを選択して、「Ctrl」キー+「Shiftキー+「Q」キーを3つのキーを同時押しします。

『文字を残してセルを結合』用のショートカットキーを利用
『文字を残してセルを結合』用のショートカットキーを利用

手順3.結合されたセルを確認
文字が消えずにセルが統合されてか確認します。

結合したセル数が多いと、一部の値が結合されたセルに下に隠れている状態になります。

一部の値が下に隠れている状態
一部の値が下に隠れている状態

手順4.行幅を広げる(完了)

行幅を広げることで、隠れている一部の値を表示することが出来ます。下の図のように、全てのセルの値を表示することができれば作業は完了です。

文字を残したセルの結合が完了
文字を残したセルの結合が完了

『文字を残すセルの結合』マクロを利用する際のポイント

この『文字を残すセルの結合』マクロを利用する際に気を付ける2つのポイントを紹介します。

マクロは別のブックでも利用可能

マクロが登録されたExcelブックは、拡張子が『xlsm』の『Excelマクロ有効ブック』というマクロ用のファイルで保存されています。

このマクロを利用したい時は、このマクロ付のExcelブックを起動しておけば、それ以外の起動しているExcelブックにもマクロを利用することが可能です。

そのため、わざわざマクロの作成を何度も繰り返す必要はありません。

拡張子でマクロ付を判断
拡張子でマクロ付を判断

マクロ実行後は元に戻せない

このマクロに限らずですが、「Ctrl」+「Shift」+「Q」のショートカットキーを使ってセルを結合した後に、「元に戻す」は使えません

利用する時は、事前にファイルを保存しておくなど注意が必要です。

マクロを使わずにセルを結合する方法

マクロは元に戻すことが出来ないなどデメリットも存在します。

そのため、マクロを利用せずに極力時間をかけずに「文字を残したセルの結合」を行う方法を紹介します。

この方法は、Exce2019以降やOffice365で利用出来るCONCAT関数(コンカット)を使用します。

まずセルを結合する前に、セルの情報を空いたセルにコピーしておきます。

セルを結合する前に空いたセルに値をコピーしておく
セルを結合する前に空いたセルに値をコピーしておく

続いて、セルを結合して、残ってた値も消します。

セルを結合する
セルを結合する

結合したセルに、CONCAT関数を挿入し文字を結合します。

=CONCAT(E3:F5)

CONCAT関数(コンカット)で文字を結合
CONCAT関数(コンカット)で文字を結合

CONCAT関数はもう不要なので、結合された文字を値で貼り付け直します。

結合された文字を値で貼り付け
結合された文字を値で貼り付け

後は「Alt」キーを使って、文字を改行していけばセルの結合の完了です。

「Alt」キーを使って文字を改行
「Alt」キーを使って文字を改行

セルの結合って禁止!?

Excel(エクセル)の『セルの結合』は、複数のセルをひとまとめに出来るので、表を作成した時にレイアウトやデザインの面でメリットがあります。

ただ、巷では『セルの結合』はダメ!禁止!という声が多く上がっているのはご存じでしょうか。

そんな「セルの結合」の問題点と解決策を以下の記事で紹介しています。

興味のある方は参考にしてみて下さい。

-Excel(エクセル), マクロ・VBA