セルの範囲指定について

今回の目標

  • セルの範囲指定を行う
  • 説明

    セルの範囲指定を行う方法です。基本的に『Range』を使用することになります。
    範囲がどこのセルからどのセルまでを範囲してするかが実行前に分かっていない場合、『Rangeと変数を組み合わせた指定方法』『RangeとCellsを組み合わせた指定方法』のどちらかによる範囲指定が必須となります。

    Range単体で範囲指定する

    セルA1~B3を選択します。
    主にマクロ実行前から、どの範囲を指定したいか、分かっている場合に使用します。

     Sub Sample_Area1()
        ' A1~B3を指定する
        Range("A1:B3").Select
    End Sub
    

    Rangeと変数を組み合わせた指定方法

    セルB2~D5を選択します。
    主にマクロ実行前に、どの範囲を指定したいか、分かず変数を使用する場合に使用します。

    Sub Sample_Area2()
        Dim i as Long
        Dim j as Long
        Dim str as String
        i = 2
        j = 5
        ' str = "B2:D5" となります
        str = "B" & i & ":" & "D" & j
        Range(str).Select
    End Sub
    

    RangeとCellsを組み合わせた指定方法

    セルB2~D5を選択します。
    主にマクロ実行前に、どの範囲を指定したいか、分かず変数を使用する場合に使用します。

    ' セルC2~E4を指定する。Rangeの中に、左上のセルと右下のセルを指定します。
    Range(Cells(2, 3), Cells(4, 5)).Select
    

    セルA1に数値「5」を入れます。VBEを開いてモジュールを追加し、下のマクロをコピペしてください。

    Sub Sample_Area3()
        Dim top as Long       ' top は 範囲の上の行
        Dim left as Long      ' left は 範囲の左の列
        Dim bottom as Long    ' bottom は 範囲の下の行
        Dim right as Long     ' right は 範囲の右の列
        top = 2
        left = 3
        bottom = 4
        right = 5
        ' 範囲の左上がB2「Cells(2, 3)」、範囲の右下がE4「Cells(4, 5)」
        Range(Cells(top, left), Cells(bottom, right)).Select
    End Sub
    

    アクティブでないシートの範囲指定の注意点

    アクティブなシートでないシート(開いているシート)以外のセルや範囲を選択する場合、先にそのシートを選択しないとエラーが発生します。
    そのため、シートをアクティブにしてからセルを選択してください。
    詳細はこのページを参照してください。

    関連リンク

    ページの先頭へ