Excel VBA Union関数は、複数の範囲(Rangeオブジェクト)を1つの範囲として合体するために使用します。合体した範囲を操作することで、コードの効率性を向上させられます。使い方や注意点など、サンプルコードをもとに具体的に解説します。
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事
以下のようなシーンで利用されます。
・複数のセル範囲を一度に選択したり、フォーマットを適用する。
・複数の異なる範囲に対して同じ操作(例:値の変更、フォーマットの適用)を一度に実行する。
Union(Range1, Range2, ...)
Range1, Range2, ...は、合体したい複数の範囲を指定します。
・Union関数を使用する際、合体する範囲は同じシート上。
・範囲が重複している場合でもエラーは発生しませんが、操作によっては意図しない結果になる可能性があります。
日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事
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エキスパート」をご確認ください。