前回は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が実行するようにする方法をご紹介します。


コメント