関数の結果を文字列表示(4)2箇所指定

未分類

前回はGoogle スプレッドシート上で、A 列から A1 ~ A5 までの範囲の値を C 列にC1~C5に文字列で表示する方法を紹介しました。

今回はA1の関数をB1に文字列で表示。C1の関数をD1に文字列で表示。みたいに2箇所以上で指定する方法をご紹介します。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange("A2:A100");
var values = range.getValues();
sheet.getRange("C2:C100").setValues(values);

前回までのコードです。

最終コードはこちら

function onOpen() {
  myFunction1();
  myFunction2();
}

function myFunction1() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("シート1");
  var formulas = sheet.getRange("K14:K100").getFormulas();
  var results = sheet.getRange("K14:K100").getValues();
  sheet.getRange("W14:W100").setValues(results);
}

function myFunction2() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("シート1");
  var formulas = sheet.getRange("M14:M100").getFormulas();
  var results = sheet.getRange("M14:M100").getValues();
  sheet.getRange("V14:V100").setValues(results);
}

こちらのコードが今回のゴールになります。

今回は2箇所を指定します。
1箇所目
シート1のK14からK100の関数の値をW14からW100に文字列で表示します。

2箇所目
シート1のM14からM100の関数の値をV14からV100に文字列で表示します。

それでは行ってみましょう!

コードの中身を変更

まずは前回までの振り返りです。前回までを理解している方はこの項目は飛ばしてください。

var sheet = ss.getSheetByName("シート1");

ここでシートの名前を指定します。シート名がsheet5を指定したければ

var sheet = ss.getSheetByName("sheet5");

のように変更してください。

var formulas = sheet.getRange("K14:K100").getFormulas();
  var results = sheet.getRange("K14:K100").getValues();
  sheet.getRange("W14:W100").setValues(results);
}

K14:K100に好きな関数の値が表示される場所を2箇所に入れます。
そしてW14:W100の箇所に文字列で表示した場所を入れます。

2箇所以上の指定の方法

function onOpen() {
  myFunction1();
  myFunction2();
}

一番上に、上記のような表示を入れます。
myFunction1();の部分がfunction myFunction1() {の箇所を指しています。
複数指定する場合はこのmyFunction1()をどんどん増やして指定すれば良いので、myFunction2() myFunction3() myFunction4() myFunction5()のように数字を増やします。

function onOpen() {
  myFunction1();
  myFunction2();
 myFunction3();
 myFunction4();
 myFunction5();
}

このようにすると、5箇所の指定が可能になります。
そのあとはmyFunction1();のところを増やすだけです。

function onOpen() {
  myFunction1();
  myFunction2();
}

function myFunction1() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("シート1");
  var formulas = sheet.getRange("K14:K100").getFormulas();
  var results = sheet.getRange("K14:K100").getValues();
  sheet.getRange("W14:W100").setValues(results);
}

function myFunction2() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("シート1");
  var formulas = sheet.getRange("M14:M100").getFormulas();
  var results = sheet.getRange("M14:M100").getValues();
  sheet.getRange("V14:V100").setValues(results);
}

今回はmyFunction1();とmyFunction2();を書いたので2箇所指定できました。

次回は、今のままではこのコードをGASで実行するには、毎回実行ボタンを押さなければいけないですが、とても面倒なので、シートに変更が加わると自動的にGASが実行するようにする方法をご紹介します。

コメント

Copied title and URL