- Home ›
- Excel VBA入門 ›
- 値と式の設定
R1C1形式でのセルを参照する
Excel ではセルの参照形式として「A1」形式と「R1C1」形式の 2 つがあります。これまでは A1 形式を使用してきましたが、 R1C1 形式でセルを参照することもできます。ここでは Excel VBA を使って R1C1 形式でセルを参照する方法について解説します。
(Last modified: )
R1C1形式でのセルを参照する
前のページでは「A1」形式での「式」を記述していました。ここでは「R1C1」形式で「式」を記述する方法を見ていきます。「R1C1」形式で式を記述する場合は「Formula」プロパティの代わりに「FormulaR1C1」プロパティを使います。
Dim range1 As Range Set range1 = Range("A4") range1.FormulaR1C1 = "=Sum(R[-3]C:R[-1]C)"
またRangeオブジェクトを取り出す部分を省略して次のようにも記述可能です。
Range("A4").FormulaR1C1 = "=Sum(R[-3]C:R[-1]C)"
R1C1形式の場合、Rが行、Cが列を表し、現在のアクティブセルからの相対指定でセル位置を指定します。相対指定は「R」及び「C」のそれぞれに括弧([])の中に数値で指定します。
R[-2]C 同じ列で 2 行上のセル RC[3] 同じ行で 3 列右のセル R[2]C[2] 2 行下で 2 列右のセル
R1C1形式の相対位置での指定を行った場合、例えば同じような「式」を使うような場合には相対位置で「式」を記述しておけば全て同じ「式」を使うことができて便利です。
サンプルプログラム
では実際に試してみます。
事前にこのようなExcelファイルを用意しておきます。個人別の合計を集計してみましょう。
Sub テスト() Dim i As Integer For i = 2 To 4 Cells(5, i).FormulaR1C1 = "=Sum(R[-3]C:R[-1]C)" Next i End Sub
実行してみると次のようになります。
実際にExcel上でセルに設定されている値を見てみると「A1」形式に変換されて設定されています。では今度は設定されている値を取り出してみましょう。
Sub テスト() MsgBox Cells(5, 4).FormulaR1C1 End Sub
実行してみると次のようになります。
このように「A1」形式で入力されている式であっても、「R1C1」形式で取り出すことが可能です。
-- --
Excel VBA を使って R1C1 形式でセルを参照する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。