Excel VBAでUnionを使い複数セルをまとめて選択する|Cellsと組合せた使用例

Unionとは、複数のセル範囲をまとめて使うことができるメソッドです。使う機会はあまりないかも知れませんが、ここではVBAの使用例を掲載します。

構文 : オブジェクト.Union(セル範囲1 , セル範囲2 , … セル範囲n )


Homeに戻る > Excel セルのTipsへ



下の年間販売数の表で使用例サンプルを作成します。
年間販売数の表

UnionをRangeを使いセル範囲をまとめる

UnionをRangeで2つのセル範囲をまとめ選択するVBAです。
UnionをRangeを使いセル範囲をまとめるVBA

・C9:C13とE6:E11の2つを、コンマで区切り指定しています。

Sub MyUnion()
    Union(Range("C9:C13"), Range("E6:E11")).Select
End Sub

実行結果のシートです。
2つのセル範囲が選択されています。
2つのセル範囲が選択されている

UnionをCellsを使いセル範囲をまとめる

Cellsを使用し1つのセルを、複数にまとめるVBAです。
UnionをCellsを使いセル範囲をまとめるVBA

・CellsでC6セルとF8セルをまとめています。

Sub MyUnion()
    Union(Cells(6, 3), Cells(8, 6)).Select
End Sub

実行結果のシートです。
2つのセルが選択されています。
2つのセルが選択されている

表全体から100以上のセル調べUnionで選択する

Forループで表全体を総当たりで調べ、100以上のセルをUnionでまとめ選択するVBAです。
100以上のセルをUnionでまとめ選択するVBA

・For lr = 5 To 16で、5行目から16行目を調べます。
・For lc = 3 To 5で、3列目から5列目を調べます。
・Set trangeで、Rangeオブジェクトにセルを代入しています。
・Union(trange, Cells(lr, lc))で、Rangeオブジェクトにセルを追加しています。
・最後に、Rangeオブジェクトにセルが代入していれば選択します。

Sub MyUnion()
    Dim lr As Long
    Dim lc As Long
    Dim s As String
    Dim trange As Range
    
    For lr = 5 To 16
        For lc = 3 To 5
            If Cells(lr, lc) >= 100 Then
                If trange Is Nothing Then
                    Set trange = Cells(lr, lc)
                Else
                    Set trange = Union(trange, Cells(lr, lc))
                End If
            End If
        Next
    Next
    If trange Is Nothing Then
        trange.Select
    End if
End Sub

実行結果のシートです。
A支店からC支店で1月度から12月度に100以上だったセルが選択されています。
以上を実行し確認後、例えばフォント色やサイズを変更し目立たせるようなことができるようになります。、
100以上だったセルが選択されている
Homeに戻る > Excel セルのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved