IT 未分類

【Google App Script】GASの基本

2021年3月16日

Google App ScriptとはGoogleが提供する無料のスプレッドシートを自動化するためのスクリプト言語のことです。
ん?スプレッドシート?初めて聞いた方もいるかもしれないです!
スプレッドシートとはGoogleが無料で提供するExcelのブラウザ版みたいなものです。
ブラウザでアクセスなので、特定のユーザー間で共有したり編集を行うことができます。
そしてExcelとは違いローカルに落とす必要もないので、ファイルなどの管理が煩雑かしないことも特徴ですし、さらにはオフラインで編集をしてもオンラインになったら自動的に保存もしてくれる高機能版Excelです!

Googleアカウントさえあればいつでもどこでも無料で使用できます!

Excelでも同じようにコードを書いて自動化できるVBAという言語がありますが、
そのExcelではなくGoogleスプレッドシート版みたいなところです。

ただExcelと違ってブラウザでコードが書けるので、実はサーバサイド的な簡易的なWebサーバを作成することもできてしまいます。

スプレッドシートには以下の4つのオブジェクトがあります。

1. スプレッドシート自体:ブック

2. シート

3. 範囲(セルの複数)

4. セル(1つのセル)

なのでブックを指定するとその内部のシートを扱うことができて、
シートを指定するとその中の範囲とセルを扱うことができます。
範囲やセルを指定しても、そのセルがどのブックのどのシートなのかがわからないとプログラムはどのセルを参照するのかわかりません。
なのでセルをいじる場合は、ブック、シートを指定します。
このように、
ブック>シート>範囲、セル
というような大小関係が存在します。

シートをいじりたい場合は、
それよりも上位のオブジェクトであるブックが定まらないとどのスプレッドシートのシートをいじるのかわからないし、
セルをいじりたいのであれば、それより上位のオブジェクトであるブックとシートを定めないと、
どのスプレッドシートのどのシートのセルをいじるかがわからない。
そのため、セルをいじりたいのであれば事前に参照するスプレッドシートとシートを指定しておく必要があります。

スプレッドシートのツール>スクリプトエディタでGASを起動することができます。

SpreadsheetApp.getActiveSpreadsheet().getSheetByName('a').getRange('A1:C5').getValues()

SpreadsheetApp:スプレッドシートを扱うための最上位オブジェクト
getActiveSpreadsheet():現在使用しているスプレッドシートのオブジェクト
getSheetByName('a'):現在参照しているスプレッドシートのこのシートを扱うように指定
getRange('A1:C5'):現在参照しているシートのこの範囲のセルを指定
getValues():現在参照しているセルの範囲の値を取得

//=========================

SpreadsheetApp.getActiveSpreadsheet().getSheetByName('a').getRange('A1').getValue();

getRange('A1'):現在参照しているシートのセルを指定
getValue():現在参照しているセルの値を取得(1つなので単数形)



// ==== 書き込み =====
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('a').getRange('A10').setValue(100);
セルに書き込むので、setValue()でOK
getValueの逆


SpreadsheetApp.getActiveSpreadsheet().getSheetByName('a').getRange('A10:C10').setValue(100);
範囲のセルに100を書き込む

スプレッドシート上に図形から□を表示する。
カーソルと当てると3点ぽちが出てくるので、それをクリックすると
GASの関数を割り当てることができて、
ボタンをクリックした時その関数を実行して処理してくれるようになる。
図形を作成して、以下のように図形に3つの点が出てきます。

クリックすると、以下のように「スクリプト割り当て」が出てくるのでクリックします。

そうするとGASで作成した実行したい関数名を指定します。

これでこの図形(ボタン)をクリックすると、その関数が実行されてExcelのマクロのように一括処理が行われます。

-IT, 未分類
-

© 2024 Yosshi Labo. Powered by AFFINGER5