Vba コードを使用して excel でセルを結合する方法
VBA には、セル範囲または複数の範囲を 1 つに結合するために使用できる「MERGE」メソッドがあります。このメソッドにはオプションの「Across」引数があります。 TRUE を指定すると、範囲内の各行が個別に結合され、FALSE を指定すると、範囲全体が 1 つに結合されます。
VBA を使用してセルを結合する手順:
- まず、結合するセルの範囲を定義する必要があります。
- その後、ドット (.) を入力してプロパティとメソッドのリストを取得し、そのリストから「マージ」を選択するか、直接入力することもできます。
- その後、「Across」引数を TRUE または FALSE に設定する必要があります。
- 最後に、このコードを実行して範囲をマージします。
コードは次のとおりです。
Range("A1:A2").Merge False
また、範囲全体の行を結合する場合は、 across 引数に 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
テキストを結合してマージする
実際のシナリオについて話しましょう。セル範囲にテキストがあり、それらのセルを結合する必要がありますが、保持しているコンテンツは失いたくありません。それぞれを使用して範囲全体にコードループを記述し、テキストを結合して、最後に結合された範囲に追加できます。
- 最初の部分では、範囲値を保存し、それ自体を設定するために使用する変数があります。
- 2 番目の部分では、各セルの値を結合して新しい文字列を作成する LOOP があります。
- 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
VBAとは
関連するチュートリアル
- Excel で VBA を使用して行を数える
- Excel VBA フォント (色、サイズ、種類、太字)
- Excel VBA 列または行の表示と非表示を切り替える
- Excel VBA 範囲 – 範囲とセルの操作
- Excel で VBA を使用してセルに枠線を適用する