google apps scriptを使ってみよう!!
Webアプリ・プログラミング
-
- 公開日
-
- 最終更新日
エンプロススタッフ
どうも、最近google上でデータ管理を自動化する必要に駆られている小林です。
作業の自動化にあたりgoogle apps script 通称(GAS)を使用しています。
ちなみにGASですが、JavaScriptというプログラムを使ってファイルを操作するツールだと思って下さい。
Excelで言うマクロや、VBAのイメージです。
操作出来るファイルは、スプレッドシート(spreadsheet)やドキュメント(document)、フォーム(form)等、色々なものに使うことが出来ます。
という事で今回は、GASを使用したプログラムを始めてみよう!!
ここからはスプレッドシートの具体例を用いながら実際に使用してみます。
まずはスプレッドシートを作成します。現実味を出すために、出勤簿を作ってみました。
この、スプレッドシートですが、[出勤簿原本]と[2015/4]という2つのシートで出来ています。
通常、最初にこのファイルを開くと、一番左にある[出勤簿原本]が開きます。
これを[2015/4]が最初に開くようにしたい。
というのが今回のテーマです。
つまり、入力する月度のシートが自動で開くようにしたいのです。
この機能をGASを使って作っていきます。
今回は何と、簡単2ステップ!!
その1・・・スクリプトエディタを起動
GASはJavaScriptでコードを書きますので、コードを書く準備を行います。
先程作成したファイル上部にある、「ツール」から「スクリプトエディタ」をクリックします。
するとスクリプトを作成する画面が開きます。
今回は、空のプロジェクトをクリックして作成します。
プロジェクトを作成すると、スクリプトエディタが起動しコードが入力できるようになります。
ここからコードを入力していきます。
その2・・・コード入力[onOpen()]
空のプロジェクトを作成すると、最初にfunction myFunction()という関数が出来ます。
このmyFunction部分をonOpenに書き換えます。
通常入力したコードを使う場合は、配置したボタンにコードの割り当てをしたり、トリガーと呼ばれるコードの実行タイミングの設定を行うのですが、
onOpenとして作成したコードはファイルが開かれたタイミングでコードの実行が行われます。
つまり、ファイルを開くと自動でやってくれる処理を作ることが出来ます。
そして、この中に自動でシートの選択を行うコードを記入します。
function onOpen() {
/*ファイル起動時自動呼出し onOpen()*/
var dateObj = new Date();
var month = dateObj.getMonth() + 1;
var year = dateObj.getYear();
/*当月のシートを開く ここから*/
if(dateObj.getDate() > 15){
month++;
}
var str = year+”/”+month;
SpreadsheetApp.setActiveSheet(SpreadsheetApp.getActiveSpreadsheet().getSheetByName(str));
/*当月のシートを開く ここまで*/
}
後はそのまま保存するだけで、次回起動時に自動で処理を行ってくれます。今回の場合は自動で[2015/4]のシートを開いてくれます。
コードの書き方さえ分かれば、簡単に出来そうですよね。
それでは、最後にコードの説明をしておきます。
最初の3行ですが、ファイルを開いた日のデータを取得しています。
var dateObj = new Date();
この部分で、変数dateObjに日付データのかたまりを入れています。
var month = dateObj.getMonth() + 1;
この部分でdateObjから何月かを取り出し、変数monthに入れます。
※何月かを取り出す際に、1月少ない数字(4月なら3、7月なら6)が出てきますので後から1を足しています。
var year = dateObj.getYear();
この部分でdateObjから何年かを取り出し、変数yearに入れます。
そして、次のif文ですが、先ほどと同じ要領で何日かを取り出し、15日以降であれば月の数字に1を足すという処理をしています。
なぜこんな事をするかというと、この出勤簿は3/16 ~ 4/15までで4月度、4/16 ~ 5/15までで5月度という風に考えています。
その為、3/16 ~ 3/31の間にファイルを開いた場合、4月度[2015/4]のシートを開きたいのでこの処理を入れています。
ここまでに取得した変数year(年)と変数month(月)を使って○○○○(年)/□□(月)というデータを変数strに入れます。
最後の行で、変数strに入っているのと同じ名前のシートを選択するという処理をしています。
コード自体は調べていく必要がありますが、ちょっとがんばって処理を作っておくと、その後はGAS任せにしておけるので作業の手間を省くことが出来ます。まだ使ったことが無い方は、この辺りから始めてみてはいかがでしょうか。
LINEをつかって友達や家族にこの記事を教える
シェアボタン