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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

Google

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

Q&A

1回答

1202閲覧

スプレッドシートでtrue判定が出たら同じ行の別のセルに数字を+1するスクリプトが作成したい

ponpippi

総合スコア1

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

Google

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

0グッド

1クリップ

投稿2020/05/04 20:26

編集2020/05/04 20:30

#実現したいこと
スプレッドシートにて、スピンボタンのようなものを図形にスクリプトを割り当てて作成したのですが、作成したのは現在アクティブなセルに対しての処理を行うもので、
「A10からA375までの日付が入力されているセルから今日の日付を取得し、A10に入力されているのが今日の日付だとしたら対応するB10に数値を+1する(A11に今日の日付が入力されていたら対応するB11に入力される)」といったスクリプトが作成したくて、
回答で頂いたサイトを観覧したり、自分なりに調べつつ書き進めていたのですが、
どうしてもセルと現在の日付をifで照らし合わせて判定がtrueの時、trueだったセルを取得し、対応するB列に入力されるようにする処理が分からずにいます。
また、現状のソースコードで処理に間違いがある場合は教えて頂けたら幸いです。
何卒宜しくお願い申し上げます。

##元のソースコード

GAS

1var sheet=SpreadsheetApp.getActiveSheet(); 2function onClickUp(){ 3 var cell = sheet.getActiveCell(); 4 buttonUp(cell); 5} 6 7function buttonUp(cell) { 8 var value=cell.getValue(); 9 cell.setValue(value+1); 10}

###現状のソースコード

GAS

1function onClipUpToday1() { 2 var sheet=SpreadsheetApp.getActiveSheet(); 3 var range = sheet.getRange('A10:A375'); 4 var value = range.getValues(); 5 var today = new Date(); 6 Moment.moment(today).isSame(value,'day'); 7// buttonUp1(cell); 8} 9 10function buttonUp1(value) { 11// var value=cell.getValue(); 12// cell.setValue(value+1); 13}

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

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

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

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

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

guest

回答1

0

スクリプトを実行したら、A10~A375の中で今日の日付と合致した行のB列の値を+1するって処理でいいんですよね?

そしたら下の buttonUp1 の方は不要です。

Moment.moment(today).isSame(value,'day') のところは、 getValuesで取得した 配列と比較するのは無理だから、for で1個ずつ チェックしていくのがわかりやすくて良いかと。

以下のサイトを参考にして、onClipUpToday1 と組み合わせることで実現できると思います。
当然ですが、Moment.jsライブラリ追加を忘れずに。

https://off.tokyo/blog/gas%E3%81%A7%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%9F%E7%AF%84%E5%9B%B2%E3%81%AE%E4%B8%AD%E3%81%8B%E3%82%89%E7%89%B9%E5%AE%9A%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%8E%A2%E7%B4%A2-%E3%82%B9/

投稿2020/05/05 12:55

sawa

総合スコア3002

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

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

sawa

2020/05/05 13:23

よくよく見たら同じ質問をあげてません?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問