最近、GASで仕事の効率化を考えているのですが、複数のスプレッドシートのデータを扱う場合、アクティブなスプレッドシートではなく、スプレッドシートを指定してデータを取得するケースがあります。
スプレッドシート名をGASで指定する
めちゃくちゃ基礎の基礎ですが、初心者にはこれも理解するのが難しいです。
僕はこれに時間がかかりました。
アクティブなシートの指定は簡単
function getcolor() {
//アクティブシートを取得
var mySheet = SpreadsheetApp.getActiveSheet();
//A列のセルの色をgetBackgroundsで取得
var RGB = mySheet.getRange('A:A').getBackgrounds();
//H列にA列のセルの色を数値化を入力
mySheet.getRange('H:H').setValues(RGB)
}
つい最近作ったGASですが、これはアクティブなスプレッドシートのA列の背景色を数値化し、H列に記入するというプログラムです。
var mySheet = SpreadsheetApp.getActiveSheet();
これでアクティブなシートを指定していますが、シート名を指定する場合には記述方法が違ってきます。
スプレッドシート名を指定する方法
スプレッドシートのURLが分かっていれば、簡単に指定することができます。
var url ="1RyM0Zyu_poYFv17v9eSTHuIhlLSVVyXW4eiA4444444"//スプレッドシートのID
var spreadsheet = SpreadsheetApp.openById(url); //スプレッドシートIDを代入
var mySheet = spreadsheet.getActiveSheet();
こんな感じでスプレッドシートを指定することができます。
https://docs.google.com/spreadsheets/d/1RyM0Zyu_poYFv17v9eSTHuIhlLSVVyXW4eiA4444444/edit#gid=1319199500
ちなみにスプレッドシートのIDはURLに記載してあります。
スプレッドシートのシート名を指定
これはシート名を指定する方法になります。
var url ="1RyM0Zyu_poYFv17v9eSTHuIhlLSVVyXW4eiA4444444"//スプレッドシートのID
var spreadsheet = SpreadsheetApp.openById(url); //スプレッドシートIDを代入
var mySheet = spreadsheet.getSheetByName("リスト");
spreadsheet.setActiveSheet(mySheet);
こちらはスプレッドシート内にある【リスト】というシートを指定する方法になります。
スプレッドシートを指定して背景色を取得する方法
先ほどの背景色を取得する方法にスプレッドシート名を指定するとこのようなプログラムになります
function getcolor() {
var url ="1RyM0Zyu_poYFv17v9eSTHuIhlLSVVyXW4eiA4444444"//スプレッドシートのID
var spreadsheet = SpreadsheetApp.openById(url); //スプレッドシートIDを代入
var mySheet = spreadsheet.getSheetByName("リスト");//シート名”リスト”を指定
spreadsheet.setActiveSheet(mySheet);//”リスト”をアクティブなシートに指定
//A列のセルの色をgetBackgroundsで取得
var RGB = mySheet.getRange('A:A').getBackgrounds();
//H列にA列のセルの色を数値化を入力
mySheet.getRange('H:H').setValues(RGB)
}
以上になります。これをIMPORTRANGE関数と併用するといろいろな管理が出来る用意なります。
コメント