Vba コードを使用して excel でセルを結合する方法

VBA には、セル範囲または複数の範囲を 1 つに結合するために使用できる「MERGE」メソッドがあります。このメソッドにはオプションの「Across」引数があります。 TRUE を指定すると、範囲内の各行が個別に結合され、FALSE を指定すると、範囲全体が 1 つに結合されます。

VBAを使用してセルを結合およびグループ解除する

VBA を使用してセルを結合する手順:

  1. まず、結合するセルの範囲を定義する必要があります。
    define-the-range-of-a-cell-want-to-merge
  2. その後、ドット (.) を入力してプロパティとメソッドのリストを取得し、そのリストから「マージ」を選択するか、直接入力することもできます。
    type-a-dot-to-get-the-list-of-properties
  3. その後、「Across」引数を TRUE または FALSE に設定する必要があります。
    define-the-argument-across
  4. 最後に、このコードを実行して範囲をマージします。

コードは次のとおりです。

 Range("A1:A2").Merge False

また、範囲全体の行を結合する場合は、 across 引数に TRUE を使用できます。

範囲内でマージしたい場合は true を入力してください
 Selection.Merge Across:=True

上記のコードでは、範囲として選択し、メソッドをマージし、横方向を true に設定しています。そして、選択した範囲内のすべての行をマージしました。

ここで、別のワークシートのセル範囲を結合したいとします。最初にそれを有効にする必要はありません。最初にスプレッドシートを参照してから、マージする renege でマージ メソッドを使用するだけです。

 Worksheets("Sheet1").Range("A1:A2").Merge

同様に、ワークブック名を指定してワークブックを参照することもできます。

 Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1:A2").Merge

範囲を結合してセルの内容を整列させる

2 つ以上のセルを結合するときは、セル内のコンテンツを整列する必要があります。以下のスナップショットを見てください。セル A1 と A2 が結合されており、セル内の値が下揃えになっています。この問題を解決するには、配置プロパティを使用して、読みやすいようにセルの内容を中央に配置します。

範囲を結合してセルの内容を揃える
 With Range("A1:A2") .Merge .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With

テキストを結合してマージする

実際のシナリオについて話しましょう。セル範囲にテキストがあり、それらのセルを結合する必要がありますが、保持しているコンテンツは失いたくありません。それぞれを使用して範囲全体にコードループを記述し、テキストを結合して、最後に結合された範囲に追加できます。

結合テストとマージ
  1. 最初の部分では、範囲値を保存し、それ自体を設定するために使用する変数があります。
  2. 2 番目の部分では、各セルの値を結合して新しい文字列を作成する LOOP があります。
  3. 3 番目の部分では、範囲を結合し、結合された文字列を追加し、ワードラップを適用して、セルの内容を位置合わせします。

完全なコードは次のとおりです。

 Sub vba_merge_with_values() Dim val As String Dim rng As Range Set rng = Range("A1:A10") For Each Cell In rng val = val & " " & Cell.Value Next Cell With rng .Merge .Value = Trim(val) .WrapText = True .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With End Sub

コメントを追加する

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