前回の方法でGoogle スプレッドシート上で自動的に関数の結果を文字列として別の列に表示する方法を紹介しました。
今回はセルの位置を変更して、自由に任意の場所に結果を表示したり、シートを指定する方法を紹介します。
コードの確認
まずは、前回作った GAS(Google Apps Script)コードです。
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var formula = sheet.getRange("A2").getFormula();
var result = sheet.getRange("A2").getValue();
sheet.getRange("B2").setValue(result);
}
コードの見方
関数の位置を指定する
var formula = sheet.getRange("A2").getFormula();
var result = sheet.getRange("A2").getValue();
このコードの(“A2”)が関数が入力されているセルの位置になります。
スプレッドシートの関数がB8に記入している場合は下記になります。
var formula = sheet.getRange("B8").getFormula();
var result = sheet.getRange("B8").getValue();
文字列の位置を指定する
そして、文字列で表示したいセルは
sheet.getRange("B2").setValue(result);
このコードの(“B2”)が文字列として表示するセルの位置になります。
スプレッドシートの文字列をD8に表示したい場合は下記になります。
sheet.getRange("D8").setValue(result);
まとめると
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var formula = sheet.getRange("B8").getFormula();
var result = sheet.getRange("B8").getValue();
sheet.getRange("D8").setValue(result);
}
B8の関数をD8に文字列で表示できるようになりました。
簡単に変更できますね。
シートを指定する方法
シートを指定する方法です。今まではシート1の場合でしたが、シート2にしたり、自分で設定したシート名にした場合の設定方法です。
シート名を設定する方法
Google スプレッドシートの複数のシートを操作するには、各シートに固有の ID が割り当てられています。 GAS(Google Apps Script) からは、次のようにシートを指定することができます。Sheet2を指定する場合です。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet2");
この例では、アクティブなスプレッドシートから名前が「Sheet2」のシートを取得します。また、以下のようにインデックスを指定することもできます。
シートのインデックスを数字で指定する方法
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[1];
この例では、アクティブなスプレッドシートから2番目のシート(0から数えたインデックス)を取得します。※Sheet1の場合は0、Sheet2の場合は1、Sheet3の場合は2を入れます。
まとめ
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[1];
var formula = sheet.getRange("B8").getFormula();
var result = sheet.getRange("B8").getValue();
sheet.getRange("D8").setValue(result);
}
Sheet2をインデックスで指定した場合。
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("テスト");
var formula = sheet.getRange("B8").getFormula();
var result = sheet.getRange("B8").getValue();
sheet.getRange("D8").setValue(result);
}
テストというシート名を指定した場合。


コメント