見出し画像

【GAS】スプレットシート連携_テスト

おはようございます!MARIEです(`・ω・´)ゞ

宿題の答え合わせ

前回出題した宿題は無事に完了しましたでしょうか?

宿題は以下でした。

function setSomeValues() {
const ss= SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('シート1');

const output = [
  ['あああ','いいい','ううう'],
  ['えええ','おおお','かかか']
];

sheet.getRange('A1:C2').setValues(output);
}
上記シートに出力した後、「appendRow()」を使って1行追加をしてみてください。追加をする文字は ['ききき','くくく','けけけ']とします。

答えはこうです( `ー´)ノ

function setSomeValues() {
 const ss = SpreadsheetApp.getActiveSpreadsheet();
 const sheet = ss.getSheetByName('シート1');

 const output = [
   ['あああ', 'いいい', 'ううう'],
   ['えええ', 'おおお', 'かかか']
 ];

 sheet.getRange('A1:C2').setValues(output)
 sheet.appendRow(['ききき', 'くくく', 'けけけ']);
}

結果はこうなりました。

画像1

また、追加をするだけなら以下でも行けます。

function setSomeValues() {
 const ss = SpreadsheetApp.getActiveSpreadsheet();
 const sheet = ss.getSheetByName('シート1');

 sheet.appendRow(['ききき', 'くくく', 'けけけ']);
}

調べたらすぐにやり方は出てきたかと思います!簡単でしたね( `ー´)ノ

GAS_スプレットシート連携編_テスト

では今日は、GASとスプレットシートの連携についてのテストにチャレンジしてみましょう!(まずは準備から)

【テストを受ける準備①】
2つのスプレットシートの準備をしてください。
①スプレットシートA(シート名は→:全体シート)
②スプレットシートB(シート名は→:自チームシート)

【テストを受ける準備②】
以下データをスプレットシートにコピペしてください。

【テストを受ける準備③】
スプレットシートBにスクリプトを追加します。

【やりたいこと】
全体シートに自チームの収入合計と支出合計と利益合計を反映させる。

画像2

画像3

【テストの内容】
以下のプログラムに続きを書いて、部署Bの情報を全体シートに記入できるようにしてください。

function copyToAllSheet() {
 const myTeamSS = SpreadsheetApp.getActiveSpreadsheet();
 const mySheet = myTeamSS.getSheetByName('自チームシート');
 
 const allSS = SpreadsheetApp.openById('全体シートのスプシのIDを入力*******');
 const allSheet = allSS.getSheetByName('全体シート');


 // ここからプログラムを書く

}

テストの解説

出題したすぐですが、さっそく解説をしながら回答を導き出していきたいと思います(`・ω・´)ゞ

まずは、全体シートに渡したい値の範囲を決めて、値を取得しましょう。
そして全体シートのどこの範囲に情報をsetするかまでやってみましょう!

function copyToAllSheet() {
const myTeamSS = SpreadsheetApp.getActiveSpreadsheet();
const mySheet = myTeamSS.getSheetByName('自チームシート');

const allSS = SpreadsheetApp.openById('13q8vz8fXLhR9dW5rvEWQkH0cxMZ7HX0chVK3jihzAtY');
const allSheet = allSS.getSheetByName('全体シート');


const data1 = mySheet.getRange('C6:D6').getValues();

allSheet.getRange('C6:D6').setValues(data1);

}

一旦収入の合計だけ試してみました。
Bのシートの取得したい範囲をきめ、値を取得、そしてコピーしたいスプレットシートの入力したい範囲を決めセットをする。
結果はこうなりました。

画像4

良かった\(^o^)/無事に取得できました。
他の部分についても同じようにプログラムを書いてみます。

function copyToAllSheet() {
 const myTeamSS = SpreadsheetApp.getActiveSpreadsheet();
 const mySheet = myTeamSS.getSheetByName('自チームシート');

 const allSS = SpreadsheetApp.openById('13q8vz8fXLhR9dW5rvEWQkH0cxMZ7HX0chVK3jihzAtY');
 const allSheet = allSS.getSheetByName('全体シート');


 const data1 = mySheet.getRange('C6:D6').getValues();
 const data2 = mySheet.getRange('C10:D11').getValues();

 allSheet.getRange('C6:D6').setValues(data1);
 allSheet.getRange('C7:D8').setValues(data2);
}

結果を見てみましょう。

画像5

行けました!

もしかしたら、もっと効率の良いやり方があるかもしれません。例えば、コピーをしたい情報が増えたらこの書き方ではすごくデータが長くなってしまいます(*_*;

ただ、ちょっと今の私の知識だけじゃその他のやり方をここで説明することはできないので、一旦ここはできたということでOKにはしますが、業務に応用するにあたってはもう少し勉強をしていきたいと思いました。

ということで、今回のテストはこれにて終了( `ー´)ノ
そして今回はテストの会だったので宿題はありません!
今日はゆっくりお休みください。

次回はslack連携について覚えていきたいと思います!
ということで、また次回よろしくお願いいたします(`・ω・´)ゞ


いいなと思ったら応援しよう!