【GAS】セルの変更すると、プログラムを実行させる
<スポンサーリンク>
セルの値が変更されるとプログラムが実行されるプログラムを紹介したいと思います。
コード
コードは非常に簡単で、
・現在アクティブのセルを特定
・そのセルが変更されたら、関数を実行
function AutoExecution() {
var objCell = SpreadsheetApp.getActiveSheet().getActiveCell();
if (objCell.getRow() == 1 && objCell.getColumn() == 8) {
Browser.msgBox("実行します")
// ここに起動させたい関数を入力execution();
}
}
これだけです。
ただし、これだけでは自動的に実行されず、
下記の通りトリガーを設定し、
スプレッドシートの内容が変更されるたびに、
このプログラムが実行されるようにする必要があります。
いつ何時でも、変更時このプログラムが実行され、
特定のセルが変更された時だけ、if文の中に入り、関数が実行されることになります。
onEdit について
似たようなものに、onEditがあります。
書き方は先ほどのやり方と同様下記の通りとなりますが、
この場合、他の関数を呼び出して実行することができない仕様となっているようです。
権限の問題で、呼び出す関数の権限をきちんと与えても実行されません。
ですので、少し面倒ではありますが、上記のトリガーとの組み合わせで行うことをお勧めします。
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getActiveRange();
var row = e.range.getRow();
var column = e.range.getColumn();
if ( row == 1 && column == 8) {
Browser.msgBox("実行します")
// ここに起動させたい関数を直接入力
// 関数の呼び出しはできません!!!!→execution();
}}
コメント欄