Googleスプレッドシートにおいて、書式が「経過時間」であるセルから任意の時間を引き算するボタンを設置しようと思い、以下のスクリプトを作成したのですが、結果が「#NUM!」と出てしまいます。
また、以下のコードではB8セルから引き算がもしできたとしても、もともとB8セルに入力していた計算式や書式が崩れてしまいます。
もし可能なら引き算もでき、なおかつ元のセルの計算式も残しつつ経過時間という書式を保持したいです。
有識者の知識をお借りしたいです。
どうぞご教授をよろしくお願い致します。
function minus23() { var sheet = SpreadsheetApp.getActiveSheet() sheet.getRange(8, 2).setValue(sheet.getRange(8, 2).getValue() - "23:00") }
情報の追加
B8セルのもともとの計算式:=C6-B6+"23:00"
(便宜上23:00を足していますが、実際に使用したいのは1:00を足したり1:00を引いたりしたものです。また、C6,B6には日時が記入されています。)
試したコード①
function minus23() { var sheet = SpreadsheetApp.getActiveSheet() sheet.getRange(8, 2).setValue((sheet.getRange(8, 2).getValue() - 23)) }
スクリプト実施後:-2209082400023
試したコード②
function minus23() { var sheet = SpreadsheetApp.getActiveSheet() sheet.getRange(8, 2).setValue((sheet.getRange(8, 2).getValue() - "23:00")) }
スクリプト実施後:#NUM!
試したコード③
function minus23() { var sheet = SpreadsheetApp.getActiveSheet() sheet.getRange(8, 2).setValue((sheet.getRange(8, 2).getValue() - 82800)/3600) }
スクリプト実施後:-613634023
理想としましては、セルに表示される数字だけ変わり、スクリプトによる計算後ももともとの計算式は残ったままでC6,B6などの日時を変えるとそれに伴いB8の時間が変わると嬉しいです。
厳しい場合は、=C6-B6+"23:00"の計算結果を別セルに表示させて、スクリプトによる計算はそこで行うといったものでもとても嬉しいですm(_ _)m
回答2件
あなたの回答
tips
プレビュー