こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Google Apps Scriptのシート名選択

初めまして。 3日前位からGoogleスプレッドシートのScriptを勉強し始めて

「シート1のA1セルが編集されたらB1に自動で現在時刻を打刻する」
というスクリプトを作っていました。

サイトを見ながらなんとかA1判定からB1自動打刻までいけたのですが
シート名がうまく指定出来ていないみたいで
シート1だけでなく【シート2】のA1 を編集してもシート1のB1に打刻されてしまいます。

スプレッドシートは極められたのでその先へ行きたいのですが
最初はやっぱり難しくて苦悩しています;
色々間違えてるかもしれませんが、ぜひ身に付けてみたいので
初めの一歩だけご教授をどうかよろしくお願いします。

function insertLastUpdated() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('シート1');

// rangeXとYにカーソル座標を代入
var rangeX = sheet.getActiveCell().getColumn();
var rangeY = sheet.getActiveCell().getRow();

// シートの座標1,1(A1)が編集されたらB1に現在時刻を打刻(トリガーを編集時に指定)
if(rangeX==1&&rangeY==1){
sheet.getRange("B1").setValue(new Date());
}
}

投稿日時 - 2014-02-03 23:50:38

QNo.8460348

困ってます

質問者が選んだベストアンサー

こんにちは。
この質問をきっかけに触ってみた感じなので、ベストなやり方かどうか不明ですが、とりあえず以下のようにしてみたところ、ご希望の動作と同じ挙動になったようです。
「作業中のシートのシート名が'シート1'だったら」という条件を加えました。

function insertLastUpdated() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('シート1');

// rangeXとYにカーソル座標を代入
var rangeX = sheet.getActiveCell().getColumn();
var rangeY = sheet.getActiveCell().getRow();

// シートの座標1,1(A1)が編集されたらB1に現在時刻を打刻(トリガーを編集時に指定)

if((rangeX==1&&rangeY==1)&&(ss.getActiveSheet().getName()=='シート1')){
sheet.getRange("B1").setValue(new Date());
}
}

投稿日時 - 2014-02-05 00:17:20

お礼

出来ました! ありがとうございます。

まだ = とか & とかエクセルとの違いに頭悩ませちゃたり
出来るってだけで嬉しいのですごく助かりました。

ifの作りとかドットの使い方とか何をどう呼び出すかとかピンときた気がします、
ご教授ありがとうございました。

投稿日時 - 2014-02-05 02:47:56

このQ&Aは役に立ちましたか?

8人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-