VBA再入門
セルの値を使って計算する(四則演算)

マクロが覚えられないという初心者向けに理屈抜きのやさしい解説
公開日:2015-08-19 最終更新日:2021-08-12

第4回.セルの値を使って計算する(四則演算)


エクセルは表計算ソフトです。
マクロVBAでも、何はともあれ計算出来なければなりません、


計算とは、2つ以上の数値を演算するという事です。
エクセルではセルに入っている数値を使って計算します。
マクロVBAでも同様にセルに入っている数値を使って計算できます。

下の例でやってみましょう。
A1セルとB1セルの数値で、四則演算してみます。

Excel マクロVBA 実行結果

さっそく書いてみましょう、プロシージャーを追加します。

セルの値を使って足し算

まずは足し算だけ、Cellsで書きましょう。

sub 練習5
Enter
TAB
cells(2,3)=cells(2,1)+cells(2,2)
Enter


Excel マクロVBA サンプルコード

このようになりましたね。

=や+の前後には、勝手に半角空白が入って見やすくなってくれます。
では入力カーソルが、
Sub 練習5 ~ End Sub の間にある状態で実行F5

Excel マクロVBA 実行結果

C2セルに、
110
と表示されました。

セルの書き方は、セルに値を入れる時と同じですので、

Cells(2, 3) = Cells(2, 1) + Cells(2, 2)
Range("C2") = Range("A2") + Range("B2")


この2つは同じことです。
しかし、この場合のセル位置は移動する可能性が高そうですね、
こういう場合は、最初からCellsで書きましょう。
計算式の書き方は、シートでの計算式と同じなので、簡単ですね。

セルの値を使って四則演算

では、引き算、掛け算、割り算も書きましょう
足し算の下の行から、

cells(2, 4)=cells(2, 1)-cells(2, 2)
Enter
cells(2, 5)=cells(2, 1)*cells(2, 2)
Enter
cells(2, 6)=cells(2, 1)/cells(2, 2)
Enter


Excel マクロVBA サンプルコード

実行すると、

Excel マクロVBA 実行結果

ちゃんと計算できました。

四則演算の記号については、シートの計算式と同じです。

+ 足し算
- 引き算
* 掛け算
/ 割り算


これは問題ないでしょう。

セルの値を使った応用計算

では、少しだけ複雑な計算をしてみましょう。
以下の計算をしてみましょう。

Excel マクロVBA 実行結果

数量1と数量2を足し、税抜き単価を掛けて税抜き小計を求めます。
そして、税抜き小計に消費税(1.08)を掛けて税込み合計を求めます。
消費税8%の時に書いた記事です。
sub 練習6
Enter
TAB
cells(2,4)=cells(2,1)*(cells(2,2)+cells(2,3))
Enter
cells(2,5)=cells(2,4)*1.08
Enter


Excel マクロVBA サンプルコード

実行すると、

Excel マクロVBA 実行結果

計算できました。

括弧がちょっと面倒ですね。
小学校で習いましたが、
掛け算と割り算を先に計算して、その後に足し算と引き算を行います。
エクセルは、これを忠実に守っていますので、
今回の場合は、足し算を先に行う必要があるので括弧()で囲んでいます。
110×(5+7)
Cellsで書くとちょっと混乱しますが、このように書けばわかるはずです。
それぞれの数値をCellsに置き換えれば完成します。

また、固定の数値は、このまま書けば良いです。
これは、シートでの計算と同じです。
ただし、消費税率を固定で書き込んでおくことの是非は別問題です。

ワークシートの関数を使った計算

税込み合計の小数が気になりますか・・・なりますよね。
四捨五入か切り捨てか、1円未満の端数処理が必要です。

シートなら、
=ROUND(D2*1.08,0)
四捨五入なら、このように書くでしょう。
切り捨てなら、INT関数を使うかもしれません。
何にしろ、関数が必要なんです。
マクロVBAでも同様に関数が必要です。
Cells(2, 5) = WorksheetFunction.Round(Cells(2, 4) * 1.08, 0)
このように書きます。

WorksheetFunctionって何?
関数についての詳細は、後々に説明します。
今は、シートで使う関数を書くときは、
WorksheetFunction.関数名(引数・・・)
このように書くものだと覚えてください。

ExcelマクロVBA入門の対応ページ

第15回.四則演算と注釈(コメント)
エクセルは表計算ソフトですから、計算が出来なくては話になりません。四則演算(加減剰余)は必須です。この四則演算で使う算術演算の演算子は、ワークシートの演算子と同じです。あわせて、注釈(コメント)の書き方も覚えましょう。

第87回.WorksheetFunction(ワークシート関数を使う)
・ワークシート関数の使い方 ・WorksheetFunctionで使用できる関数 ・個別の関数の使い方 ・関数の結果(戻り値) ・WorksheetFunctionの使用例. ・検索系の関数での日付の扱い ・WorksheetFunctionのエラー対処 ・最後に



同じテーマ「マクロVBA再入門」の記事

第1回.マクロを書く準備をする(VBAとVBE)
第2回.マクロを書いて動かす(SubとF5)
第3回.セルに数字や文字を入れる(RangeとCells)
第4回.セルの値を使って計算する(四則演算)
第5回.同じ計算を行数分繰り返す(For~Next)
第6回.表の先頭から最終行まで繰り返す(ForとEnd(xlUp).Row)
第7回.セルの値によって計算を変える(Ifステートメント)
第8回.表範囲をまとめて消去する(OffsetとClearContents)
第9回.関数という便利な道具(VBA関数)
第10回.ワークシートの関数を使う(WorksheetFunction)
第11回.分からない事はエクセルに聞く(マクロの記録)


新着記事NEW ・・・新着記事一覧を見る

カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ