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形式の相対位置での指定を行った場合、例えば同じような「式」を使うような場合には相対位置で「式」を記述しておけば全て同じ「式」を使うことができて便利です。

サンプルプログラム

では実際に試してみます。

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

実行してみると次のようになります。

R1C1形式での式の設定

実際にExcel上でセルに設定されている値を見てみると「A1」形式に変換されて設定されています。では今度は設定されている値を取り出してみましょう。

Sub テスト()
    
    MsgBox Cells(5, 4).FormulaR1C1
        
End Sub

実行してみると次のようになります。

R1C1形式での式の設定

このように「A1」形式で入力されている式であっても、「R1C1」形式で取り出すことが可能です。

-- --

Excel VBA を使って R1C1 形式でセルを参照する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。