[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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください