ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS基礎講座 2. 】ループを使い4つのセルに5を足し込んでいく方法(for)
GASでループさせることができるようになります。
一つの動作を連続して行うことができます。
ループはどうでしたか?
なかなかおもしろかったんじゃ
ないでしょうか?
さて、今回は、さらに価値の高い方法をお伝えします。
これを知ることであなたは、
- GASでシート間での値の取得や設定ができるようになります。
今までは、今開いているシートの
操作だけでしたが、シートを指定して
操作できるようになります。
なので、自由自在にシート間で
値のやり取りをできるようになるのです。
逆に、知らないと、
今開いているシートの操作しか
できないので、いつまで経っても
所詮「井の中の蛙」です。
ぜひ、縦横無尽に
ダイナミックにシートの枠組みに
捉われずにGASってください。
そして、
こんな感じで
サクッと答えてあげてください。
シートを特定して操作するには
特定のシートを操作するのは簡単です。
単にシート名を入力すればいいだけです。
動画はこちら
スクリプト
function myFunction() {
var app = SpreadsheetApp;
var ss = app.getActiveSpreadsheet();
var activesheet = ss.getActiveSheet();
/*
for(var i=8;i<=11;i++){
var tempt = activesheet.getRange(i,1).getValue();
tempt = tempt + 5;
activesheet.getRange(i,2).setValue(tempt);
}
*/
var targetSheet = app.getActiveSpreadsheet().getSheetByName("シート3");
// targetSheet.getRange(1,2).setValue(7);
var temp = targetSheet.getRange(1,2).getValue();
var secondSheet = app.getActiveSpreadsheet().getSheetByName("シート2");
secondSheet.getRange(10, 2).setValue(temp);
}
マインドセットします。
マインドセット
シートを指定することでGASの幅が大きく広がる
シートを指定することでGASの幅が大きく広がる
今回は、とてもコスパのいい
ノウハウです。
単にシートを指定できるように
なるだけで、大きく世界が広がります。
では、今回のGoogleシートマスターへの究極の方法です。
Step1.
getSheetByName()を使って
シートオブジェクトを取得する
Step2.
getValue()してみる
Step3.
setValue()してみる
getSheetByName()を使って
シートオブジェクトを取得する
Step2.
getValue()してみる
Step3.
setValue()してみる
では、早速別シートの値を
取得してみてください。
取得してみてください。
今すぐです。
これで、GASの世界が
大きく広がりました。
最後までご覧いただきありがとうございます。
コメント
同一のスプレッドシートでほかのシートにある値を一つにまとめて表示したいのですが、取得先のシートは増えることがあり、データも表のようにまとまっておらず(飛び飛びのセルのため)配列は使用できなさそうです。
=を使用して表示はできるのですが、いちいちシート名を修正するのが大変です。
GASやほかの関数で一度で取得できる方法はないでしょうか??
rinsukeさん、コメントありがとうございます。
サンプルとなるシートをご提供いただければ、
そのシートにそって改善案を提案できるかもしれません。