質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

728閲覧

GASで16行ごとに加算する数値を上げて追加したい

tenutanuki

総合スコア0

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2021/10/20 07:37

前提・実現したいこと

スプレッドシートのC列17行以降の数値から
16行毎に加算する数値を0.5上げて追加していきたいです。
C列17~33行 +0.5
C列34~50行 +1.0
といった具合に数値を最終行まで加算していきたいです。

※C列には既に数値は入っておりその数値に加算していく形です

該当のソースコード

gs

1function plus() { 2var ss = SpreadsheetApp.getActiveSpreadsheet(); 3var sh = ss.getActiveSheet(); 4var lastRow = sh.getLastRow(); 5var r = 0.5; 6for(var i=17; i<=lastRow; i++){ 7sh.getRange(i,3).setValue(sh.getRange(i,3).getValue()+r); 8if(i % 17 === 0){ 9r + 0.5; 10} 11} 12}

IF文以降が反映されていない

上記のソースコードを実行すると、最終行まで0.5の加算しかされません。
コードの内容的にif以降が反映されていないように感じるのですが、
16行毎に加算する数値を上げるにはどういった対処をすればいいでしょうか。

エラーメッセージなし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。
ソースコードのr + 0.5;をr=r + 0.5;に変えることで問題なく動きました。
以下にコードを全文載せておきます。

gs

1function plus() { 2var ss = SpreadsheetApp.getActiveSpreadsheet(); 3var sh = ss.getActiveSheet(); 4var lastRow = sh.getLastRow(); 5var r = 0.5; 6for(var i=17; i<=lastRow; i++){ 7sh.getRange(i,3).setValue(sh.getRange(i,3).getValue()+r); 8if(i % 17 === 0){ 9r = r + 0.5; 10} 11} 12}

投稿2021/10/20 08:48

編集2021/10/20 08:49
tenutanuki

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問