目標
ExcelVBAのRangeプロパティとValueプロパティを理解して操作できる
ExcelVBAではプロパティを知るとかなり多くの処理を自動で行わせることができます。加えて、VBAのプログラミング学習では変数や制御構造を学ぶ前にいろいろな設定を経験すると制御構造や様々なデータ構造の学習に入ったときに、オブジェクトやプロパティについて悩まなくてもよくなるので学習効率が良くなります。
ExcelVBAでよく使う「9つのプロパティ」
プロパティ(アルファベット順) |
ActiveSheet |
ActiveCell |
Cells |
End |
Offset |
Range ※今回の記事で扱うプロパティです。 |
Sheets |
Value ※今回の記事で扱うプロパティです。 |
Worksheets |
Rangeプロパティの概要と利用方法
Rangeプロパティとは
エクセルワークシートの単一のセルや複数のセルを指定するプロパティです。
Rangeプロパティの利用方法
Range(”セル番地”).メソッド
- Range(”セル番地”)
- Range(“セル番地,セル番地,セル番地”)
- Range(“セル番地:セル番地”)
Rangeプロパティの基本は「指定したセルを返す」です。セル番地を指定することで、指定したセルをオブジェクトとして操作することが可能になります。
サンプルプロシージャ
VBAでRangeプロパティを利用してみる
Sub selectRange()
Dim boxNum As Integer
Worksheets("Sheet1").Select
Range("C5").Select
MsgBox "C5を選択"
Range("B3,A5,D1").Select
boxNum = Range("B3,A5,D1").Count
MsgBox "B3,A5,D1を選択。選択したセルの個数は" & boxNum
Range("A1:D4").Select
boxNum = Range("A1:D4").Count
MsgBox "B3,A5,D1を選択。選択したセルの個数は" & boxNum
MsgBox "範囲A1からD4を選択"
End Sub
実行してみる
Rangeプロパティの利用パターン
Range(“セル番地”).Select | セルの選択 |
Range(“セル番地,セル番地,セル番地”).Count Range(“セル番地:セル番地”).Count | セルの個数を数える |
Range(“セル番地”).Value | セルの値を返す |
Valueプロパティの概要と利用方法
Valueプロパティとは
「セルの値の取得」または「セルへの値の設定」を行うためのプロパティです。
Valueプロパティはセルに入っている値を返す時に使用します。簡単に言うと「セルから値を取り出すとき」に使用します。逆に値を代入する時は記述を省略しても問題ありません。
このプロパティは省略できたり、場合によっては書くことが許されなかったり、書かない方が良かったりと場面で変わるので慣れるまでは「一応、付けて動かす!」を基本として行ってみてください。
Valueプロパティの利用方法
Range(“セル番地”).Value
セルから値(文字列)を取り出す場合
Dim something As String
somthing = Range(“セル番地”).Value
セルへ値(文字列)を代入する場合
Range(“セル番地”).Value = “何かの値”
Range(“セル番地”) = “何かの値”
サンプルプロシージャ
次のスクリプトを記述して動かしてみる
Sub IOValue()
Dim something As String
Worksheets("Sheet1").Select
MsgBox "セルC3に「何かの値1」を入力します"
Range("C3").Value = "何かの値1"
MsgBox "セルC3から値を取り出します"
something = Range("C3").Value
MsgBox "取り出した値は「 " & something & " 」です。"
MsgBox "セルC4に.Valueを省略して「何かの値2」を入力します"
Range("C4") = "何かの値2"
End Sub
実行結果
今回は以上となります。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。