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

Google Apps Script(GAS)の入門解説です
最終更新日:2016-10-28

第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 ・・・新着記事一覧を見る

Variantの数値型と文字列型の比較|エクセル雑感(7月1日)
VBAのVariant型について|VBA技術解説(6月30日)
VBAのString型の最大文字数について|エクセル雑感(6月20日)
VBAで表やグラフをPowerPointへ貼り付ける|VBAサンプル集(6月19日)
アクティブシート以外の表示(Window)に関する設定|VBA技術解説(6月17日)
マクロ記録での色のマイナス数値について|エクセル雑感(6月16日)
ツイッター投稿用に文字数と特定文字で区切る|エクセル雑感(6月15日)
日付の謎:IsDateとCDate|エクセル雑感(6月14日)
IFステートメントの判定|エクセル雑感(6月13日)
インクリメンタルサーチの実装|ユーザーフォーム入門(6月12日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門




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


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



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