Google Apps Script入門
セルの値を使って計算する

Google Apps Script(GAS)の入門解説です
最終更新日:2022-11-04

第6回.セルの値を使って計算する


セルの値を取得し、計算してから別のセルに結果を入れる。
これを、Google Apps Scriptではどのように書くかを解説します。



セルの値の取得と設定

セルに値を入れるには、
Rangeオブジェクトの、setValueメソッド
これを使いました。

セルの値を取得するには、
Rangeオブジェクトの、getValueメソッド
を使います。

以下の表で、
金額 = 単価 × 数量
を計算します。

Apps Script 画像

今回は、2行目のD2セルの計算のみをやってみましょう。


完成スクリプト、その1

function mySample2() {
  var sheet = SpreadsheetApp.getActiveSheet()
  sheet.getRange(2, 4).setValue(sheet.getRange(2, 2).getValue() * sheet.getRange(2, 3).getValue())
}

解説、その1

セルに値を入れるには、
var sheet = SpreadsheetApp.getActiveSheet()
sheet.getRange(1, 1).setValue(値)
これで入れられることを前回までにやりました。

金額 = 単価 × 数量
このスクリプトは、
sheet.getRange(1, 1).setValue(B2セルの値 * C2セルの値)
これで良い事は分かると思います。

セルの値さえ取得できれば良いですね。
セルの値を取得するのは、
Rangeオブジェクトの、getValueメソッド
になります。
B2セルなら、
getRange(2, 2).getValue()

sheet.getRange(1, 1).setValue(値)
この値の部分に、
sheet.getRange(2, 2).getValue() * sheet.getRange(2, 3).getValue()
これを入れて完成です。


完成スクリプト、その2

function mySample3() {
  var sheet = SpreadsheetApp.getActiveSheet()
  var tannka,suuryou
  tannka = sheet.getRange(2, 2).getValue()
  suuryou = sheet.getRange(2, 3).getValue()
  sheet.getRange(2, 4).setValue(tannka * suuryou) 
}

解説、その2

その1と同じ処理ですが、変数を使って計算しています。
sheet.getRange(2, 4).setValue(sheet.getRange(2, 2).getValue() * sheet.getRange(2, 3).getValue())
このスクリプト自体に問題はありませんが、
ぱっと見で、何をやっているのか分かりずらいスクリプトになっています。

tannka = sheet.getRange(2, 2).getValue()
suuryou = sheet.getRange(2, 3).getValue()
sheet.getRange(2, 4).setValue(tannka * suuryou)

これなら、誰が見ても、何をしているかは一目瞭然でしょう。
変数名はローマ字にしてみました。
 英語でも、日本語でも、わかり易いのが一番良いです。


算術演算子(四則演算子)

説明は要らない気もしますが、一応記載はしておきます。

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


セルの値を使って計算するの最後に

セルの値を取得する。
セルに値を入れる

これらは、スクリプト内で最も多く記述されるメソッドになります。
しっかりとマスターしましょう。




同じテーマ「Google Apps Script入門」の記事

第3回.スクリプトを実行するには
第4回.セルに数字や文字を入れる
第5回.変数って何だ?
第6回.セルの値を使って計算する
第7回.同じ計算を行数分繰り返す
第8回.最終行を取得して繰り返す
第9回.コメントの書き方
第10回.条件で処理を変える(条件分岐,if)
第11回.条件で処理を変える(条件分岐,switch)
第12回.表範囲をまとめて消去する
第13回.セルに書式を設定する


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

数字(1~50)を丸付き数字に変換するVBA|VBA技術解説(2022-11-15)
TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)|エクセル入門(2022-11-14)
TEXTBEFORE関数(テキストの指定文字列より前の部分を返す)|エクセル入門(2022-11-14)
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)|エクセル入門(2022-11-12)
LAMBDA以降の新関数はVBAで使えるか|VBA技術解説(2022-11-11)
WRAPCOLS関数(1次元配列を指定数の列で折り返す)|エクセル入門(2022-11-08)
WRAPROWS関数(1次元配列を指定数の行で折り返す)|エクセル入門(2022-11-08)
EXPAND関数(配列を指定された行と列に拡張する)|エクセル入門(2022-11-07)
TAKE関数(配列の先頭/末尾から指定行/列数を取得)|エクセル入門(2022-11-06)
DROP関数(配列の先頭/末尾から指定行/列数を除外)|エクセル入門(2022-11-06)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Excelショートカットキー一覧|Excelリファレンス
7.並べ替え(Sort)|VBA入門
8.エクセルVBAでのシート指定方法|VBA技術解説
9.マクロって何?VBAって何?|VBA入門
10.ExcelマクロVBAの基礎を学習する方法|エクセルの神髄




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


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



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