Excel(エクセル) でセルに数式を入力することは普通に行います。
例えば、セル P6 でセル C6~N6 の合計を計算する場合、セル P6に SUM関数を使った数式「=SUM(C6:N6)」を入力すれば計算できます。
そして、この数式の入力は必ず手作業でセルに入力する必要はなく、VBA(マクロ) を使って行うこともできます。
最初に手作業で特定のセルに数式を埋め込んでおけば事足りる場合がほとんどですが、VBA(マクロ) を使ったセルへの数式の入力が役立つこともあります。
今日は、その方法を具体例をあげながら説明します。
1、セルに数式を入力するケース
以下のような 4月~3月の1年間の損益のデータを入力するシートを取り上げます。
「合計」ボタンをクリックすれば、各々の項目につきP列に4月~3月の合計が計算・表示されるようにします。
また、「平均」ボタンをクリックすれば、各々の項目につきP列に4月~3月の平均が計算・表示されるようにします。
「合計」ボタンと「平均」ボタンは、図形の四角形を挿入して作ったものです。
図形の名前を変更しておきましょう。
「合計」ボタンをクリックすると、左上のボックスの中に入力すれば図形(四角形)の名前を変更できるので、「合計」としておきます。
同様に、「平均」ボタンについては、図形(四角形)の名前を「平均」としておきます。
「合計」ボタンと「平均」ボタンには、次に示す「Goukei_Heikin」プロシージャを埋め込みます。
(ボタンを選択して右クリック→「マクロの登録」より設定)
2、セルに数式を入力するプログラミングコード
さて、各々の収益・費用の項目の「合計」と「平均」を計算できるプログラミングコードを以下に示します。
プログラミングコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Sub Goukei_Heikin() Select Case Application.Caller 'VBA を呼び出した方法についての情報から判定' Case "合計" Range("P5") = "合計" '見出しに「合計」と表示' Range("P6") = "=SUM(C6:N6)" 'SUM 関数を使った数式をセルP6に出力' Range("P6").Copy Range("P7:P25") 'セルP6をセルP7~25にコピペ' Case "平均" Range("P5") = "平均" '見出しに「平均」と表示' Range("P6") = "=Average(C6:N6)" 'AVERAGE 関数を使った数式をセルP6に出力' Range("P6").Copy Range("P7:P25") 'セルP6をセルP7~25にコピペ' Case Else End Select End Sub |
コード説明
3行目の Application.Caller はこの「Goukei_Heikin」プロシージャの呼び出し元を表しています。
ボタンに付けた名前である「合計」か「平均」のどちらかになるますね。
そして、Application オブジェクトの Caller プロパティは VBA を呼び出した方法についての情報を返します。
参考↓
Select Case ステートメントを使って、「Application.Caller」が「合計」の場合と「平均」の場合に分けて処理しています。
7行目は、セルP5 に見出しとして「合計」と表示させています。
8行目は、セルP6 に SUM 関数を使った数式「=SUM(C6:N6)」を入力しています。
そして、次の10行目で上記セルP6を下のセル P7~25 にコピペしています。
さて、ここが今回のポイントです。
セルに手作業で入力することもできる数式を VBA を使って入力しているのは、これらのセルに入力したい数式が場合によって異なるからです。
「合計」ボタンをクリックした際には合計を計算する式を入力たく、また「平均」ボタンをクリックした際には平均を計算する式を入力したいのですね!
VBA を使えば、ケースによってセルに入力する数式を変えることができるのです。
数式の入力の仕方は、文字列を入力するのと同じ要領で数式を “” で囲います。
“” の中は、普通にシート上でセルに数式を入力するやり方と同じで「=」から始めます。
関数の入力の仕方もシート上で直接入力する場合と同じです。
13行目以降の平均については AVERAGE 関数を使う点がことなりますが、同様の処理を行っています。
さて、このプロシージャを埋め込んだ「合計」ボタン、「平均」ボタンをそれぞれクリックしてみましょう!
「合計」ボタンをクリックすれば合計が計算・表示されることが確認できます。
「平均」ボタンをクリックすれば平均が計算・表示されることが確認できます。
3、まとめ
Excel VBA(マクロ)でセルに数式を入力する方法について説明しました。
意外と使えるケースがありますので、覚えて頂きたいです。