[VBA] Rangeプロパティと Cellsプロパティ(セルの選択)

単体セルもセル範囲も Rangeオブジェクトです

 VBA ではワークシートのセルを Rangeオブジェクト で操作します。
 これは単体セルであっても、複数セル、あるいはセル範囲であっても、とにかくセルと名のつくものはみんな Rangeオブジェクトなのです。

 VBA Rangeオブジェクトでセル範囲を選択

 だから~

Rangeオブジェクト.メソッド

とか~

Rangeオブジェクト.プロパティ

みたいに書けば、セルに色を塗ったり、枠線つけたり、色々なことができるのね~。とりあえず今回は セルを選択する という一番基本的な操作を覚えましょ~。これだけでも覚えることがたくさんあるのね~。
 

Rangeプロパティと Selectメソッドでセルを選択します

 まずは基本中の基本。セル A1 を選択してみましょ~。Rangeプロパティで得た Rangeオブジェクトに対して Selectメソッドを使いますよ~。

 '単体セルを選択

 Sub SelectRangeA1()

 Range("A1").Select

 End Sub

 実行するとセル A1 が選択されますよ~。

 A1セルを選択

 次はセル範囲を選択してみましょ~。

 'セル範囲を選択

 Sub SelectRangeB2C4()

 Range("B2:C4").Select

 End Sub

 実行すると B2 から C4 のセル範囲が選択されます。

 VBA B2C4セル範囲選択

 次はとびとびセルを選択してみましょ~。

 'とびとびセルを選択
 Sub SelectRange3()

 Range("B2, D4").Select

 End Sub

 マクロを実行すると B2 と D4 が選択されるのね~。

 VBA とびとびセルを選択

 他にも色々な選択方法があるので、まとめて並べておきましょ~。

 Range("A1","C3").Select A1~C3 範囲を選択
 Range("B2:C3,D7:E8").Select B2~C3 範囲とD7~E8 範囲を選択
 Range("B:B").Select B 列を選択
 Range("B:E").Select B 列から E列までを選択
 Range(Columns(3), Columns(5)).Select C 列から E 列までを選択
 Range("A:A,C:C").Select A 列と C 列を選択
 Range("5:5").Select 5 行を選択
 Range("3:6").Select 3 行から 7 行を選択
 Range(Rows(2), Rows(5)).Select 2 行から 5 行を選択
 Range("5:5,8:8").Select 5 行と 8 行を選択
 Range("1:3,5:5").Select 1~3 行と5 行を選択
 Range("KOBATO").Select KOBATO という名前のセルを選択

 

Cellsプロパティと Selectメソッドでセルを選択します

 Rangeオブジェクトを得るプロパティには、Rangeプロパティの他に Cellsプロパティ というものがあって、これは単体セルのみ参照することができるのね~。参照方法は

Cells(行,列)

ですよ~。たとえばセルC4 を参照したいときは

Cells(4, 3)

というように引数を指定します。慣れないうちは引数の順番が混乱してしまいがちだけど、

Cells(y,x)

というように覚えるのがおすすめね~。y は縦方向、x は横方向というイメージが描きやすいでしょ? 実際 Cells の引数を変数として記述するときにも、この書き方をしてもいいのね~。セルC4 を選択するマクロは次のようになりますよ~。

 'セルC4 を選択

 Sub SelectRangeC4()

 Cells(4, 3).Select

 End Sub

 Cellsプロパティを用いるとワークシートの全てのセルを選択することもできますよ~。

 '全てのセルを選択

 Sub SelectRangeAll()

 Cells.Select

 End Sub

 え? 全てのセルを選択するようなステートメントに、いったい何の使い道があるのかって? ...... こばともよくわかんない。あ、そうそう、Rangeプロパティと Cellsプロパティを組合わせてセル範囲を選択する方法もありますよ。これはちょっぴり高級なテクニックね~。

 'A1~C3範囲を選択

 Sub SelectRangeA1C3()

 Range(Cells(1, 1), Cells(3, 3)).Select

 End Sub

 これは Cellsプロパティの引数を変数にしたいときなんかに、けっこう使える記述なのね~。たとえばね~、

 '位置を指定して範囲を選択

 Sub SelectRange()

 Dim y as Integer

 y = InputBox("行番号を入れてね")

 Range(Cells(y, 1), Cells(y + 2, 3)).Select

 End Sub

 マクロを実行すると「行番号を入れてね」てメッセージが現れるから、たとえば「 3 」を入れると、セルA3 からセルC5 までの範囲が選択されますよ~。

 VBA 入力した番号によって選択位置変更

 というわけで、今日はそろそろこのへんで~。こばとちゃんダンス♪ こばとちゃんダンス♪ え? どうして踊るのかって? 特に意味はないけど、なんとなく。

 ≫ VBA の技術メニューページに戻りましょ~

Google広告
スポンサーリンク
スポンサードリンク
末尾大型広告
末尾大型広告

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください