見出し画像

【GAS】スプレットシート連携_説明編

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

前回でGASの基礎編が全て終了しましたね( `ー´)ノ
めちゃめちゃ長かった。めちゃめちゃ頑張った。
そしてこれからもめちゃめちゃ頑張って覚えることがあるのですが、基礎知識を持ち合わせた今だからこそ、もっと業務に応用できるようになるために、今回からはアプリケーションとの連携について学んでいきましょう!

アプリケーションについて

画像1

画像2

画像3

GAS基礎編のめっちゃ最初の方に出てきたのですが、GASは様々なアプリケーションとの連携が可能です。例えば上記のように、Googleのアプリはもちろんのこと、slackやLINEなどの外部との連携もできてしまうのです。

スプレットシートとの連携

例えばスプレットシートの場合、シートから値を取ってくる、シートに値を入力する、その他シートをコピーするなどの操作がGASのプログラムで可能となります。

スプレットシートにアクセスするパターンだと、以下のプログラムが例となります。

function testIf() {
 const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 const x = Browser.inputBox('数字を入れよう', Browser.Buttons.OK_CANCEL);

 if ( x < 10 ) {
   sheet.getRange("A5").setValue(x + 'は10より小さい');
 } else if (x < 20 ) {
   sheet.getRange("A5").setValue(x + 'が20より小さい');
 } else {
   sheet.getRange("A5").setValue(x + 'は20以上');
 }
}

※「SpreadsheetApp」がスプレットシートのこと。

すでにスプレットシートとの連携は、基礎編でもやってましたが、さらに理解を深めるべく、スプレットシートとの連携についてより深く私と一緒に学んでいきましょう!

スプレットシートの構造

まず、Googleの中に「スプレットアプリケーション」があります。
その中に、スプレットシート(ブック)、シート、レンジ(セル)が存在しています。

画像4

スプレットシートでやりたいこと

スプレットシートでやりたいことは、主に3つ。
①シートからある範囲の値を取ってくる(値のget
②何かしらの処理をする
③あるセルに書き出す(値のset

【サンプル】
お試しで以下のプログラムを書いて実行をしてみましょう。
「A1」のセルに何か入力をしてから実行をしてみてください( `ー´)ノ

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

 const range = sheet.getRange("A1");
 const value = range.getValue();

 range.setValue(value + 'って優しいよね。');
}

結果はこうなりました。

画像6

ではさっそく上記プログラムの解説をしますね。

const ss = SpreadsheetApp.getActiveSpreadsheet();
スプレッドシートアプリケーションから現在アクティブなスプレットシート(ss)を取得(get)している。

「const sheet = ss.getSheetByName('シート1');」
ssからsheet(シート1)を取得している。

「const range = sheet.getRange("A1");」
sheetからレンジ(範囲)を指定している。

「const value = range.getValue();」
Rangeの中にある値を取得している。

「range.setValue(value + 'って優しいよね。');」
Rangeに対して、valueをSetしている。

スプレットシートの定番処理

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

ちなみにここの部分は、スプレットシートを扱う際の処理の定番な形となりますので丸覚え、丸暗記しちゃってOKです(゜-゜)!!

範囲を指定したい場合は、Range
値を取得したい場合は、getValue。
値をセットしたい場合は、setValue

これも変わることがありませんので、覚えておいてくださいm(_ _)m

ではまた次回、よろしくお願いいたします(`・ω・´)ゞ


この記事が気に入ったらサポートをしてみませんか?