目標
ExcelVBAのCellsプロパティを理解して操作できる
ExcelVBAではプロパティを知るとかなり多くの処理を自動で行わせることができます。加えて、VBAのプログラミング学習では変数や制御構造を学ぶ前にいろいろな設定を経験すると制御構造や様々なデータ構造の学習に入ったときに、オブジェクトやプロパティについて悩まなくてもよくなるので学習効率が良くなります。
ExcelVBAでよく使う「9つのプロパティ」
プロパティ(アルファベット順) |
ActiveSheet |
ActiveCell |
Cells ※今回の記事で扱うプロパティです。 |
End |
Offset |
Range |
Sheets |
Value |
Worksheets |
Cellsプロパティの概要と利用方法
Cellsプロパティとは
Cellsプロパティはワークシートオブジェクトの持つプロパティで、セル(Rangeオブジェクト)を指定することができます。
Cellsプロパティの利用方法
Cellsプロパティは行番号と列番号を指定することでセル(Rangeオブジェクト)を指定します。
記述方法:Cells(行番号, 列番号)
セルA1の座標を(1,1)として、下に移動するほど行番号が増え、
右に移動するほど列番号が増えます。
よくあるCellsプロパティの利用パターン
一覧表などで、1行分のレコードを入力する時に、よく使われます。
こういった場合は行番号部分を変数にしておくと便利です。今回はLNへ直接「11」を代入していますが、例えば、今後、ユーザーフォームで入力を行うなどの設定をする場合は、LN部分を自動的に1つずつ増やす処理を行わせることも可能です。
‘###### LN LineNumberの略 #####
Dim LN As Integer
LN = 11
Cells(LN, 2).Value = “28”
Cells(LN, 3).Value = “ガス代”
Cells(LN, 4).NumberFormatLocal = “\##,###”
Cells(LN, 4).Value = “”
Cells(LN, 5).NumberFormatLocal = “\##,###”
Cells(LN, 5).Value = “4567”
Cells(LN, 6).FormulaR1C1 = “=R[-1]C + RC[-2] – RC[-1]”
NumberFormatLocal = “\##,###”
.NumberFormatLocal = “\##,###” のように記述をすることで、セル内の表示形式を通貨にすることができます。数値を入力する前に設定すれば、その後で入力した数値は日本円の表示形式となります。
以下はそれぞれ二行ずつが1つのセットとなります。
Cells(LN, 4).NumberFormatLocal = “\##,###”
Cells(LN, 4).Value = “”
Cells(LN, 5).NumberFormatLocal = “\##,###”
Cells(LN, 5).Value = “4567”
FormulaR1C1プロパティ
FormulaR1C1プロパティをとりつけたセルはRCで指定する座標の起点となります。今回の場合は、
Dim LN As Integer
LN = 11
Cells(LN, 6).FormulaR1C1 = “=R[-1]C + RC[-2] – RC[-1]”
なのでCells(11, 6)が起点となります。(※セルF11)
このF11を起点にして
R[上下移動分]C[左右移動分]を移動します。
“=R[-1]C + RC[-2] – RC[-1]” つまり、この部分は
R[-1]C …起点F11から上に1つ移動、左右移動無し(※セルF10)
RC[-2]…起点F11から、上下移動無し、左に2つ移動(※セルD11)
RC[-1]…起点F11から、上下移動無し、左に1つ移動(※セルF11)
これらの計算となります。
サンプルプロシージャ
Option Explicit
Sub practiceCls()
Worksheets("Sheet4").Select
'###### LN LineNumberの略 #####
Dim LN As Integer
LN = 11
Cells(LN, 2).Value = "28"
Cells(LN, 3).Value = "ガス代"
Cells(LN, 4).NumberFormatLocal = "\##,###"
Cells(LN, 4).Value = ""
Cells(LN, 5).NumberFormatLocal = "\##,###"
Cells(LN, 5).Value = "4567"
Cells(LN, 6).FormulaR1C1 = "=R[-1]C + RC[-2] - RC[-1]"
End Sub
実行してみる
11行目にレコードが追加されました。今回は以上です。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。