Excel VBA Unionで複数範囲(Rangeオブジェクト)を1つの範囲に合体する方法

 

Excel VBA Union関数は、複数の範囲(Rangeオブジェクト)を1つの範囲として合体するために使用します。合体した範囲を操作することで、コードの効率性を向上させられます。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

 

Excel VBA Unionを利用

以下のようなシーンで利用されます。

・複数のセル範囲を一度に選択したり、フォーマットを適用する。

・複数の異なる範囲に対して同じ操作(例:値の変更、フォーマットの適用)を一度に実行する。

 

使い方

Union(Range1, Range2, ...)

Range1, Range2, ...は、合体したい複数の範囲を指定します。

 

ポイント

・Union関数を使用する際、合体する範囲は同じシート上。

・範囲が重複している場合でもエラーは発生しませんが、操作によっては意図しない結果になる可能性があります。

 

日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

Excel VBA Unionのサンプルコード
2つの異なる範囲を合体し、合体した範囲のフォントを太字にする例
Option Explicit

Sub UnionExample()
    Dim rng1 As Range
    Dim rng2 As Range
    Dim combinedRange As Range

    ' 範囲を設定
    Set rng1 = ThisWorkbook.Sheets("Sheet1").Range("A1:A5")
    Set rng2 = ThisWorkbook.Sheets("Sheet1").Range("C1:C5")

    ' Union関数で範囲を合体
    Set combinedRange = Union(rng1, rng2)

    ' 合体した範囲にフォーマットを適用
    combinedRange.Font.Bold = True
End Sub

3つの異なる範囲を合体し、合体した範囲に値を設定する例

Option Explicit

Sub UnionExampleMultipleRanges()
    Dim rng1 As Range
    Dim rng2 As Range
    Dim rng3 As Range
    Dim combinedRange As Range

    ' 範囲を設定
    Set rng1 = ThisWorkbook.Sheets("Sheet1").Range("A1:A5")
    Set rng2 = ThisWorkbook.Sheets("Sheet1").Range("C1:C5")
    Set rng3 = ThisWorkbook.Sheets("Sheet1").Range("E1:E5")

    ' Union関数で範囲を合体
    Set combinedRange = Union(rng1, rng2, rng3)

    ' 合体した範囲に値を設定
    combinedRange.Value = "Test"
End Sub

Union関数の基本的な使い方とその応用方法を理解し、Excel VBAで複数の範囲を効果的に合体・操作できるようになります。

Excel VBAで自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。