ボタンの作成に関するチュートリアルを読みましたが、非常にシンプルで簡単でした。
ただし、その場でボタンを作成したい。ステータス欄があります。非表示のシートのセルの範囲から作成されたドロップダウン メニューがあります。これは作業コードです。
ウィッシュリストはこちら。「ステータスX」を選択したときにボタンを表示させたい。次に、ユーザーはボタンを押してカウンターをインクリメントできます (表示されます)。ボタンが押されたときに、日付と時刻を追跡する必要があります (履歴も含めて表示されます)。前回のボタン押下日時が常に表示されます。
カウンターがある数値 (たとえば 10) に達すると、警告メッセージがポップアップ表示されますが、これをユーザーが確認する必要があります。その後、ステータスが自動的に変更され、ボタンが消えて、行全体 (色の変化を伴う) が別のページ (または別のスプレッドシート) に移動します。全体的に)。
現在、ステータスが変化したときに行の色を変更し、行を別のページに移動する機能があります。どういうわけかその時点でボタンが作成されると思います。チュートリアルに書かれていること以外は、実際には当てはまらないと思いますが、先に進む方法がよくわかりません。何か助けはありますか?
私の場合、これが実行される可能性のあるページがいくつかあるため、「アクティブなページ」を使用することは悪い考えであることに注意してください。なので、すべて「sourceSheet」と「targetSheet」を使っています。
ありがとうございました
//編集トリガーとしてhappyFunTimeを搭載。
function happyFunTime() {
var s = SpreadsheetApp.getActiveSheet();
var r = s.getActiveCell();
// set row color as soon as we know the status
var i = r.getRow();
var targetSheetName=setRowColor(i);
// moveRow(targetSheetName);
}
function setRowColor(i)
{
var sName;
var outCome = [];
var color;
var range = SpreadsheetApp.getActiveSheet().getDataRange();
var statusColumnOffset = getStatusColumnOffset();
var rowRange = range.offset(i-1, 0, 1);
var status = rowRange.offset(0, statusColumnOffset).getValue();
outCome=checkStatus(status);
sName=outCome[0];
color=outCome[1];
rowRange.setBackgroundColor(color);
return sName;
}