教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA セル操作】セルに数式を入力(Formula)する方法を教えて!

f:id:m_kbou:20200419124347p:plain

セルに数式を入力する方法について説明します。セルに数式を入力するにはFormulaプロパティを使います。セルの参照にはA1形式とR1C1形式がありますので、その両方について説明します。

 

 

構文

記述方法は以下の通りとなります。

・A1形式

Range(”[対象セル]”).Formula = "[数式]"

・R1C1形式

Range(”[対象セル]”).FormulaR1C1 = "[数式]"

[説明]:

セルに数式を入力するには

 「Range(”[対象セル]”).Formula = "[数式]"」

    又は

 「Range(”[対象セル]”).FormulaR1C1 = "[数式]"」

と記述します。

[対象セル] 数式をセットするセルを記述します。
※「”」(ダブルクォーテーション)で囲みます。
[数式] セットする数式を記述します。
数式には「A1形式」と「R1C1形式」の2種類の形式が指定できます。
例えば「=B1」の数式をセットする場合、
・A1形式の場合:=B1
・R1C1形式の場合:=R2C2
を記述します。
※「”」(ダブルクォーテーション)で囲みます。

[記述例]:

Range("A1").Formula = "=B1"
Range("A1").FormulaR1C1 = "=R2C2"

 

使い方

使い方について具体的に説明します。

A1形式でのセルに数式を入力する方法

A1形式でのセルに数式を入力する方法について説明します。

[プログラミング例]:

Sub サンプル()

  Range("A1").Formula = "=B1"

End Sub

内容は、「A1セルにA1形式で指定した数式:”=B1”をセットして下さい。」との意味になります。

f:id:m_kbou:20210415054405p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①B1セル~B3セルに10~30の数値が入力されています。<実行>ボタンをクリックします。このボタンには上記のプログラミング例のプログラムが登録されています。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。) 

f:id:m_kbou:20210415054420p:plain

②結果としてA1セルに「10」が表示されます。(※A1セルに数式の「=B1」がセットされ、B1セルの値「10」が表示された事が分かります。)

f:id:m_kbou:20210415054433p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

A1形式でのセルに数式を入力する方法についての説明は以上です。

 

R1C1形式でのセルに数式を入力する方法

R1C1形式でのセルに数式を入力する方法について説明します。

[プログラミング例]:

Sub サンプル()

  Range("A1").FormulaR1C1 = "=R2C2"

End Sub

内容は、「A1セルにR1C1形式で指定した数式:”=R2C2”をセットして下さい。」との意味になります。

f:id:m_kbou:20210415054651p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①B1セル~B3セルに10~30の数値が入力されています。<実行>ボタンをクリックします。このボタンには上記のプログラミング例のプログラムが登録されています。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。) 

f:id:m_kbou:20210415054704p:plain

②結果としてA1セルに「20」が表示されます。(※A1セルに数式の「=$B$2」がセットされ、B2セルの値「20」が表示された事が分かります。)

f:id:m_kbou:20210415054716p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

R1C1方式でのセルに数式を入力する方法についての説明は以上です。

 

おわりに

今回はセルに数式を入力する方法について説明しました。今回のケースでは、他のセルに入力されている値をA1セルにFormulaプロパティを使用してセットしましたが、それ以外にも演算子や関数等(例:=B1+B2、=B1*B2、=sum(B1:B3))を指定した数式の入力もできます。是非色々なパターンを試してみて下さい。