セルの結合を行ごとに行いたいときはないでしょうか。
レイアウトを整えたり項目の重複をなくしたり、目的は様々だと思います。
けど、そんな中で悩むことは、
・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について
まとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す