【GASの基礎】アクティブなスプレッドシートとシートを指定してみた

最近、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関数と併用するといろいろな管理が出来る用意なります。

 

 

コメント

タイトルとURLをコピーしました