Excelでセルの結合を行ごとにする方法|基本、ショートカット、VBA

セルの結合を行ごとに行いたいときはないでしょうか。
レイアウトを整えたり項目の重複をなくしたり、目的は様々だと思います。

けど、そんな中で悩むことは、

・セルの結合を行ごとにしたいがやり方がわからない。
・1行1行手動で移動してセルを結合するのは面倒。
・ショートカットやVBAで効率的に行いたいがやり方がわからない。

ですよね。

今回はそんなお悩みを解決する
Excelでセルの結合を行ごとにする方法|基本、ショートカット、VBAについて
まとめます!

複数のセルを一つに結合する基本操作

[ホーム]タブを選択します。

結合したいセルを選択します。

[セルを結合して中央揃え]を選択します。

警告メッセージがでたら[OK]をクリックします。

セルが結合されました。

左のA1のセルの値が優先され、残った形になります。

タカヒロ
タカヒロ
まずは基本のおさらいということで説明しました。
次は応用編です。

行ごとにセルの結合(横方向に結合)を行う基本操作

[ホーム]タブを選択します。

結合したいセルを複数行選択します。

[横方向に結合]を選択します。

警告メッセージがでたら[OK]をクリックします。

セルが結合されました。


タカヒロ
タカヒロ
複数の行単位に結合してくれるので、結合作業がグッと楽になりますね。
ただ、結合の度に警告メッセージが表示されるのが少々難点です…

複数のセルを一つに結合するショートカット

ショートカットは以下の順序で実施します。

Alt + H

Alt + M

Alt + C

行ごとにセルの結合(横方向に結合)するショートカット

ショートカットは以下の順序で実施します。

Alt + H

Alt + M

Alt + A

複数のセルを一つに結合するVBA

ExcelVBAで複数のセルを一つに結合する方法について説明します。

サンプルのVBAは以下の通りです。

セルを一つに結合(シートとレンジ指定)

セルを一つに結合したいシート及びセルの範囲が決まっている場合は以下のようにします。

ThisWorkbook.Worksheets(“<シート名>”).Range(“<セルの範囲>”)

続いてMergeメソッドでセルを結合し、
HorizontalAlignmentプロパティに水平方向中央揃えの「xlCenter」をセットします。

Sub セルを一つに結合_シートとレンジ指定()
    
    'セルを一つに結合_シート指定
    ThisWorkbook.Worksheets("Sheet1").Range("A1:C1").Merge
    
    '水平方向に中央揃え
    ThisWorkbook.Worksheets("Sheet1").Range("A1:C1").HorizontalAlignment = xlCenter
    
End Sub

水平方向の位置の種類については以下の通りです。

定数 水平位置
xlGeneral 標準
xlLeft 左詰め
xlCenter 中央揃え
xlRight 右詰め
xlFill 繰り返し
xlJustify 両端揃え
xlCenterAcrossSelection 選択範囲内で中央
xlDistributed 均等割り付け

 

タカヒロ
タカヒロ
標準にはない、右詰めもできるようになりますね。

 

セルを一つに結合(ブック全体)

セルを一つに結合する対象をブック全体とする場合は、存在するシート分処理を繰り返すようにします。
Sheets.Countプロパティでシートの件数を取得し、
Sheets(num)でシートのインデックスを指定し、指定レンジ「A1:C1」を対象に結合します。

Sub セルを一つに結合_ブック全体()

    'セルを一つに結合_ブック全シート対象
    For num = 1 To Sheets.Count
        'レンジ指定の書式をクリア
        Sheets(num).Range("A1:C1").Merge
        
        '水平方向に中央揃え
        Sheets(num).Range("A1:C1").HorizontalAlignment = xlCenter
    Next

End Sub

タカヒロ
タカヒロ
こちらを実行する場合はブック全体の書式設定がクリアされますので、実行前にバックアップをしたほうがよいでしょう。

行ごとにセルを結合(横方向に結合)するVBA

ExcelVBAで行ごとにセルを結合(横方向に結合)する方法について説明します。

サンプルのVBAは以下の通りです。

行ごとにセルを結合(横方向に結合)(シートとレンジ指定)

行ごとにセルの結合をしたいシート及びセルの範囲が決まっている場合は以下のようにします。

ThisWorkbook.Worksheets(“<シート名>”).Range(“<セルの範囲>”)

続いてMergeメソッドで引数「True」を追加します。
なお、「False」の場合は選択範囲全部が一つに結合されます。

HorizontalAlignmentプロパティに水平方向中央揃えの「xlCenter」をセットします。

Sub 行ごとにセルを結合_シートとレンジ指定()
    
    '行ごとにセルを結合_シート指定
    ThisWorkbook.Worksheets("Sheet1").Range("A1:C2").Merge True
    
    '水平方向に中央揃え
    ThisWorkbook.Worksheets("Sheet1").Range("A1:C1").HorizontalAlignment = xlCenter
    
End Sub

行ごとにセルを結合(横方向に結合)(ブック全体)

行ごとにセルを結合する対象をブック全体とする場合は、存在するシート分処理を繰り返すようにします。
Sheets.Countプロパティでシートの件数を取得し、
Sheets(num)でシートのインデックスを指定し、指定レンジ「A1:C1」を対象に結合します。

Sub 行ごとにセルを結合_ブック全体()

    'セルを一つに結合_ブック全シート対象
    For num = 1 To Sheets.Count
        'レンジ指定の書式をクリア
        Sheets(num).Range("A1:C1").Range("A1:C2").Merge True
        
        '水平方向に中央揃え
        Sheets(num).Range("A1:C1").HorizontalAlignment = xlCenter
    Next

End Sub

タカヒロ
タカヒロ
こちらを実行する場合はブック全体の書式設定がクリアされますので、実行前にバックアップをしたほうがよいでしょう。

VBAの実装手順

実装手順は以下の通りです。

今回はExcel側にこのVBAを実装します。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。
※完了メッセージやステータス管理など必要に応じて実装してもらえばと思います。

さいごに

いかがでしょうか。

今回は、
Excelでセルの結合を行ごとにする方法|基本、ショートカット、VBAについて
まとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です