ホーム > セルの操作 > Lesson2: セルの参照2

セルの参照2
セルの参照 セルの参照 CurrentRegion
表全体を選択する時に、CurrentRegionを使います。
CurrentRegionは、指定したセルを含む表全体を選択します。
オブジェクト.CurrentRegion

成績表
CurrentRegionを使ったプログラムを作ってみます。
Sub セルの参照_CurrentRegion()

  Range("E5").CurrentRegion.Select

End Sub

実行すると、"E5"を含む表全体が選択されました。
実行結果

2007年11月
セルの参照 セルの参照 Offset
Offsetを使うと、セル範囲から指定した行数と列数分移動したセル範囲が得られます。
オブジェクト.Offset(行方向移動数,列方向移動数)

Offsetを使って点数を変更してみます。
Sub セルの参照_Offset()

  With Range("D5")
    .Offset(-1, 0).Value = 80 'しげっちの点数
    .Offset(-1, 1).Value = 80
    .Offset(-1, 2).Value = 80
    .Offset(-1, 3).Value = 80
    .Offset(0, 0).Value = 100 'えんどーくんの点数
    .Offset(0, 1).Value = 100
    .Offset(0, 2).Value = 100
    .Offset(0, 3).Value = 100
    .Offset(1, 0).Value = 10 'ロボたんの点数
    .Offset(1, 1).Value = 10
    .Offset(1, 2).Value = 10
    .Offset(1, 3).Value = 10
  End With

End Sub

行方向への移動数が負の場合は、上方向へ移動
列方向への移動数が負の場合は、左方向へ移動します。
省略すると「0」となり移動しません。
実行前
実行結果は、
実行後
3人の点数が変更されました。
2007年11月
セルの参照 セルの参照 End
Endを使うと、終端セルを取得することができます。
オブジェクト.End(方向)

方向は、
定数 方向
xlDown 下端
xlUp 上端
xlToLeft 左端
xlToRight 右端
Endを使ってセルを選択し、背景色を変えてみます。
Sub セルの参照_End()

  Range("C4").End(xlDown).Select
  Selection.Interior.ColorIndex = 35

  Range("C4").End(xlToRight).Select
  Selection.Interior.ColorIndex = 20

End Sub

実行前
実行結果は、
実行後
セルC4の下端の背景が35の色になり、右端が20の色になりました。
2007年11月
セルの参照 セルの参照 Endその2
表の中の名前をひとつ消してみます。
実行前
そして、最後の人の名前が入ったセルを選択しようと思い、こんなのを作ってみました。
Sub セルの参照_End2()

  Range("C4").End(xlDown).Select

End Sub

実行後
選択されたのは、セル"C5"。
"C6"のデータがないので、"C4"の下端は"C5"になってしまった。
本当は、一番下にある"C7"のぷーちゃんを選びたかった...こういうときは
Sub セルの参照_End3()

  Range("C65536").End(xlUp).Select

End Sub

シートの一番下にあるセル"C65536"から上方向に移動(xlUp)すると
最終行のデータが入っているセル"C7"が選択されます。
実行後
一番下の65536から上に行くって考えにちょっと感心。
そうすれば途中のデータがなかったり、消したりしてもいつも最終行のセル選べる。便利そうだ...
2007年11月