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

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

ただいまの
回答率

91.36%

  • JavaScript

    11240questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Excel

    968questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • Google Apps Script

    364questions

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

  • Google

    356questions

    Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Google App Script(GAS)で数値の入ったセルのみから任意の数値を減算または加算したい。

解決済

回答 1

投稿 2017/11/21 00:17

  • 評価
  • クリップ 0
  • VIEW 93

nikukyu

score 10

こんばんは!
Google App Script(GAS)を用いて、スプレッドシート上の数値のは入ったセルから任意の数値を減算または加算したいです。任意の数値はコード上で設定できると助かります。トリガーでタイマー
を設定し、毎週決まった曜日にそのfunctionを実行できればなと思っています。

以下のコードを改変すればできそうなのですが、うまくいかないのでどうか有識者の力をお借りしたいです。
よろしくお願い致しますm(_ _)m

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();

function plus1() {

  if(Utilities.formatDate(new Date(), "Asia/Tokyo", "m") != "0" ) return;

  const currentValues = sh.getSheetValues(1, 1, sh.getLastRow(), sh.getLastColumn());

  const plusOneToEachCell = function(row){
    return row.map(function(cellVal){
      if (typeof cellVal == "number") return cellVal + 1;
      return cellVal;
    })
  };

  const plusOneValues = currentValues.map(plusOneToEachCell);
  sh.getRange(1, 1, plusOneValues.length, plusOneValues[0].length).setValues(plusOneValues);
}
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

うまくいかなかった場合、「試したこと」と「試した結果」も書いておくと良いと思いますよ。
回答する上でのヒントになりますので。

提示のコードは加算・減算以外の処理が多いので、新規に作成しました。
本当にシンプルなのでヒントになれば幸いです。
※「シート1」の A1 セルに対して加算・減算します
※「シート上すべての数値項目に対して」が希望でしたらすみません

function myFunction() {
  addNumber(1);   // 1 加算される
  addNumber(-1);  // 1 減算される
}

function addNumber(number) {
  var range = SpreadsheetApp.getActive().getSheetByName("シート1").getRange("A1");
  range.setValue(range.getValue() + number);
}

投稿 2017/11/21 11:33

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/24 14:55

    すみません、またもや通知に気付きませんでした....
    ありがとうございます!!
    上のものと併せて、数値の入っているセル全体に適応できるようにまた考えてみたいと思います!!
    お世話になりましたm(_ _)m

    次回からは試した方法と結果も載せるようにします!
    アドバイスありがとうございますm(_ _)m

    キャンセル

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

ただいまの回答率

91.36%

関連した質問

  • 受付中

    GAS ドキュメント作成

    DocumentAppドキュメントを作成したいのですが、パスの指定方法がわかりません。 公式リファレンスで調べたところパスを指定するメソッドが見当たらないのですがどう指定すれば良

  • 解決済

    GoogleスプレッドシートからGASで文字列を検索する方法を教えてください

    Googleフォームの回答のスプレッドシートをGASでメールに送信するものを作っています。 質問 最終行の特定の列の文字列を同じ列から検索して、 条件分岐で、 すでに同

  • 解決済

    GASをDRYで書きたい

    前提・実現したいこと Google Apps Scriptを使いグーグルカレンダーの翌日と翌々日の予定を 自分のGmailに送っています。 しかし、このコードには重複があるの

  • 解決済

    GAS フォームからの回答 月別にシートをわけたい

    現在google formを使用してタイムカードとして利用しています。 回答はスプレッドシートに自動的に集計されていますが、このスプレッドシート内に月が変わるごとに新しいシート(

  • 解決済

    GAS⇔html間の値の渡し方

    前提・実現したいこと GASでVBAでいうとユーザーフォームのようなものを作るために、UserForm.htmlを作成し、そこにテキストボックスなどを配置し、その値をGAS側で受け

  • 受付中

    GASを用いた座席表の表示

    前提・実現したいこと 弊社の座席配置は日ごとに変わります。 現状は毎朝、私がオフィスにきて用意してある座席表を張り出しておるのですが、 先輩からGASを用いて、スプレッドシート上に

  • 解決済

    GAS 二次配列での値取得

    やりたいこと スプレッドシートにメールアドレス、名前、部署、グループアドレスの順に一覧があり、 その値を取得して、二次配列にする。 該当するメールアドレスを検索し、グループアドレス

  • 受付中

    gasで自身をスクレイピングしたい

    前提・実現したいこと google apps scriptでwebアプリを公開しました そのscriptから、定期的に自身にアクセスを当て、スクレイピングしたいと思い、以下のコード

同じタグがついた質問を見る

  • JavaScript

    11240questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Excel

    968questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • Google Apps Script

    364questions

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

  • Google

    356questions

    Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。