ExcelマクロVBA入門
第103回.Unionメソッド

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
最終更新日:2019-07-23

第103回.Unionメソッド


UnionメソッドはApplicationのメソッドで、
複数のセル範囲を集め、1つのRangeオブジェクとして参照することができます。


マクロVBAにおいて、
セル範囲に次々に別のセル範囲を追加して、最後にまとめて処理するような場合に便利です。

Unionメソッド

2 つ以上のセル範囲の集合のRangeオブジェクトを返します。

Application.Union(Arg1, Arg2, Arg3, ・・・, Arg30)



Arg1 セル範囲 (Range オブジェクト) を指定します。
Arg2 セル範囲 (Range オブジェクト) を指定します。
Arg3 セル範囲 (Range オブジェクト) を指定します。
Arg30 セル範囲 (Range オブジェクト) を指定します。

Application.は省略可能です。
Arg1とArg2は必須です、Arg3以降はオプションになります。

Unionメソッドの使用例

Dim MyRange As Range
For i = 2 To 10 Step 2
  If MyRange Is Nothing Then
    Set MyRange = Cells(i, 1)
  Else
    Set MyRange = Application.Union(MyRange, Cells(i, 1))
  End If
Next i
MyRange.Value = "UNION"

2行目から10行目までの偶数行のA列に、"UNION"と入れています。
これは、以下の処理と同じになります。



Dim i As Long
Dim strRange As String
For i = 2 To 10 Step 2
  If strRange = "" Then
    strRange = Cells(i, 1).Address
  Else
    strRange = strRange & "," & Cells(i, 1).Address
  End If
Next i
Range(strRange).Value = "UNION"

ただし、Rangeの文字列は、255文字までなので、
それ以上になる場合は、Unionメソッドを使う必要があります。

Unionメソッドの実践例

指定文字、指定数式でジャンプ機能(Union)
ジャンプ機能がありますが、それでは選択できないような場合です。ある文字を含むセルや、ある関数を含むセルを一括で選択状態にします。何に使うかは…ご自由に!InputBox("対象ブック:"&ActiveWorkbook.Name&vbLf& _"対象シート:"&ActiveWorkbook.ActiveSheet.Name&…
VBAのFindメソッドの使い方には注意が必要です
vbafindでの検索が極めて多く、Findメソッドは検索からの流入ではトップクラスです、アクセス解析で分かった事ですが正直少し戸惑っています。なぜなら私はFindメソッドをほとんど使いません、Match関数や配列を使って処理したほうが高速かつ確実に動作するからです。

Unionメソッドは、頻繁につかうものではありませんので、
細部については、コツ用になった時に調べれば良いでしょう。
しかし、
これを知らないと解決できないような場合もでてきますので、
どのようなメソッドなのかだけは知っておいて下さい。



同じテーマ「マクロVBA入門」の記事

第100回.InputBoxメソッド(インプットボックス)
第101回.Midステートメント
第102回.Intersectメソッド
第103回.Unionメソッド
第104回.GetPhoneticメソッドとSetPhoneticメソッド(フリガナ)
第105回.Callステートメント
第106回.Functionプロシージャー
第107回.プロシージャーの引数
第108回.変数の適用範囲(スコープ,Private,Public)
第109回.列挙型(列挙体)Enum
第110回.ユーザー定義型・構造体(Type)


新着記事NEW ・・・新着記事一覧を見る

VBAにおける変数のメモリアドレスについて|VBA技術解説(11月8日)
空文字列の扱い方と処理速度について(""とvbNullString)|VBA技術解説(1月7日)
Errオブジェクトとユーザー定義エラー|VBA入門(11月5日)
シングルクォートの削除とコピー(PrefixCharacter)|VBA技術解説(11月4日)
ユーザー定義型の制限とクラスとの使い分け|VBA技術解説(11月3日)
クリップボードに2次元配列を作成してシートに貼り付ける|VBA技術解説(11月1日)
VBAクラスを使ったイベント作成(Event,RaiseEvent,WithEvents)|VBA技術解説(10月31日)
VBAクラスのAttributeについて(既定メンバーとFor Each)|VBA技術解説(10月19日)
VBAの用語について:ステートメントとは|VBA技術解説(10月16日)
VBAのマルチステートメント(複数のステートメントを同じ行に)|VBA技術解説(10月14日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数宣言のDimとデータ型|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.セルに文字を入れるとは(Range,Value)|VBA入門



  • >
  • >
  • >
  • Unionメソッド

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ