GASとは?
GASとは、Google Apps Scriptの略で、Googleのサービスを自動化するスクリプト言語を言います。
Excelマクロというと、VBA(Visual Basic for Applications)という言語で記載するのが一般的ですが、GASでも同じように作業を自動化することができます。
GASもVBA同様、ほかのアプリケーションと連携させながら動かすことができ、スプレッドシートに書いた宛先にメールを一斉送信するなどの操作も行うことができるようになります。
こういった自動化を、一般にRPA(Robotic Process Automation)ということがあります。
よく「Excelマクロはダメ、RPAの方がいい」という意見を聞くことがありますが、ExcelマクロやGASによる自動化も、RPAの一種なので、この点は注意が必要です。
前回Excelとスプレッドシートの違いについて解説していきましたが、ある意味、VBAかGASかという点では、二つは大きく異なるといえるかもしれません。
ちょっと動かしてみる
GASを使うにあたって、何か特別な環境の用意などは不要です。
スプレッドシートを開き、「拡張機能」から「Apps Script」を選択して開くだけです。
ここに次のようなコードを入れて動かしてみましょう。
この時、作成したスプレッドシートに対して、Apps Scriptのプロジェクトがアクセスする権限を持っている必要があるので、初回の利用時は権限の確認が必要なので注意が必要です。
function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
spreadsheet.getRange('A1').setValue('あ');
}
実行が成功したら、A1セルに「あ」と書いてあることを確認しましょう。
繰り返し処理
といっても、これだけなら、A1セルを選択して「あ」と入力した方が早いです。
そこで、たくさん「あ」と入れるという作業を自動化してみます。
この時に活用するのが繰り返し処理です。
For(…){…}で囲まれた{}の中の処理を、()の条件に従って処理するというものです。
function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
for(let i = 2; i <= 5; i++) {
spreadsheet.getRange('A' + i).setValue('あ');
}
}
パッと見るといまいちわからないかもしれませんが、iに2という数値を与えて、5以下になるまで1ずつ足していく間、{}の中の処理を行うという指示文になっています。
なので、これを実行すると、A2からA5までの間に「あ」と入力されることになります。
これがA100までとなると、入力し続けるよりは、GASを使った方が早いかもしれません。
(※まだこの時点ではコピーした方が早いですが、、、。)
こういった操作を組み合わせて、作業を自動化していくということになります。
次回以降は、IF構文を使って、少しややこしい処理をしていきたいと思います。
コメント