目次

目的

Excel VBA のマクロで複数セルの選択を行いたい。

選択したセルの値、書式を変更したい。

目次まで戻る

題材

Excel ワークシートの B3 と D5 セルを選択します。

選択したセルの値、背景色を変更します。

B3 と D5 セルが選択状態になっている。「VBA」という値が入り、背景色が黄色に着色されている。

目次まで戻る

その方法の一例

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

と変更すると以下のようなエラーが発生しました。

実行時エラー 1004: Union メソッドは失敗しました。 application オブジェクト。

別のワークシート同士での Union メソッドは失敗するようです。

  • Union
    • 別のワークシートのセル範囲
      • セル1 , セル2 , セル3 ...
    • 現在のワークシートのセル範囲
      • セル1 , セル2 , セル3 ...

目次まで戻る

テスト環境

  • Windows 10
  • Microsoft Office Excel 2003

間違ってないと良いですが。

以上、閲覧ありがとうございました。

目次まで戻る

この投稿のタグ

同じカテゴリの投稿( Excel VBA )

前後の投稿