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

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

ただいまの
回答率

90.50%

  • JavaScript

    16434questions

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

  • Excel

    1535questions

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

  • Google Apps Script

    846questions

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

  • Google

    604questions

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

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

解決済

回答 1

投稿

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

nikukyu

score 17

こんばんは!
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/24 14:55

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

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

    キャンセル

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

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    GAS ドキュメント作成

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

  • 解決済

    GASでHTMLファイルの内容がスプレッドシートに送れない

    プログラミング初心者です。 初めて投稿させていただきます。 現在Apps scriptを使ってHTMLファイルから入力された情報をスプレッドシートに書き込むというプログラムを作

  • 解決済

    GAS⇔html間の値の渡し方

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

  • 受付中

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

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

  • 解決済

    GASのスプレッドシート 配列 高速化

    前提・実現したいこと ここに質問したいことを詳細に書いてください スプレッドシートにランダム関数を最終行まで(約3000個)、一列に並べるスクリプトを作りたい 発生している問題

  • 解決済

    GAS⇔HTML条件抽出表示

    GASにてHTML内のテキストボックスに店コードを入れて、スプレッドシートに記載されている 内容から検索・その抽出結果をHTMLへ全て表示させたいです。 該当する条件でヒットす

  • 受付中

    GASのTwitter Botでの件

    仕事でTwitter Botを作ろうと思っています。 GASでTwitter Botを作りたいのですが 下記のコードではランダムに取得してしまいます。 function get

  • 受付中

    GAS リンクURLの取得

    初めてTeratailで質問させて頂きます。 情報に不足がありましたらご指摘ください。 GoogleAppsScriptを利用して、スプレッドシート内でセルに設定されたリンクの

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

  • JavaScript

    16434questions

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

  • Excel

    1535questions

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

  • Google Apps Script

    846questions

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

  • Google

    604questions

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