google apps scriptを使ってみよう!!

Webアプリ・プログラミング

  • 公開日
  • 最終更新日

エンプロススタッフ

どうも、最近google上でデータ管理を自動化する必要に駆られている小林です。 作業の自動化にあたりgoogle apps script 通称(GAS)を使用しています。 ちなみにGASですが、JavaScriptというプログラムを使ってファイルを操作するツールだと思って下さい。 Excelで言うマクロや、VBAのイメージです。 操作出来るファイルは、スプレッドシート(spreadsheet)やドキュメント(document)、フォーム(form)等、色々なものに使うことが出来ます。  

という事で今回は、GASを使用したプログラムを始めてみよう!!

  ここからはスプレッドシートの具体例を用いながら実際に使用してみます。 まずはスプレッドシートを作成します。現実味を出すために、出勤簿を作ってみました。  
speadsheet作成

出勤簿作成しました!!

この、スプレッドシートですが、[出勤簿原本]と[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をつかって友達や家族にこの記事を教える

シェアボタン

お問い合わせ

エンプロスの職業訓練についてご不明な方は、まずは学科・コース入校から就職までよくある質問をご覧ください。

  • 職業訓練のエンプロスについて、ご質問ご不明点などございましたら、下記のお問い合わせフォームからお問い合わせください。お問い合わせについては、2営業日以内にご返答いたします。

    お問い合わせフォーム
  • 営業時間
    8:50〜18:00
    定休日
    土日祝
    TEL
    079-287-1000