目次
目的
Excel VBA のマクロで複数セルの選択を行いたい。
選択したセルの値、書式を変更したい。
題材
Excel ワークシートの B3 と D5 セルを選択します。
選択したセルの値、背景色を変更します。

その方法の一例
Excel VBA のコード例:
Sub 方法_002364() Application.Union(ActiveSheet.Range("B3"), ActiveSheet.Range("D5")).Select '現在のシートの B3 と D5 セルを選択。セル範囲を複数指定可能な Union メソッドというものを使用しています。 With Selection 'Selection プロパティというものらしいです。 .Value = "VBA" 'Value プロパティに新しい値を設定しています。 .Interior.ColorIndex = 6 'Interior オブジェクト ColorIndex プロパティを設定しています。 6 番は黄色になるようです。 End With Debug.Print TypeName(Selection) 'Selection の返す実体は何なのか確認してみます。結果は「Range」オブジェクトでした。 End Sub
上記のマクロを実行すると以下のようになりました。同一のシート内ではありますが、離れた場所にあるセルを一括で変更することが出来ました。
補足 1
Application.Union(ActiveSheet.Range("B3"), ActiveSheet.Range("D5")).Select
の部分で Union メソッドというものを使用しています。複数の範囲を一括で操作できるメソッドのようです。この Union メソッドおかげで値の入力、背景色の変更も一回の処理で済みました。
- Union
- セル範囲
- セル1 , セル2 , セル3 ...
- セル範囲
- セル1 , セル2 , セル3 ...
- セル範囲
補足 2
Application.Union(ActiveSheet.Range("B3"), ActiveSheet.Range("D5")).Select
の部分を
Application.Union(Worksheets(2).Range("B3"), ActiveSheet.Range("D5")).Select
と変更すると以下のようなエラーが発生しました。

別のワークシート同士での Union メソッドは失敗するようです。
- Union
- 別のワークシートのセル範囲
- セル1 , セル2 , セル3 ...
- 現在のワークシートのセル範囲
- セル1 , セル2 , セル3 ...
- 別のワークシートのセル範囲
テスト環境
- Windows 10
- Microsoft Office Excel 2003
間違ってないと良いですが。
以上、閲覧ありがとうございました。