こんにちは、今回はGASを触ってみたのでそのことについて話していこうと思います。今回なぜ、GASを触ってみたのかというと、AWSのRedshiftにおいてあるデータをGoogleスプレッドシートに簡単に出力してみたいと思ったため触ってみました!Redshiftに対して、Googleスプレッドシートからクエリを送信・受信してスプレッドシートに張り付ける部分は、ほかの人が書いてくれていたものを使用しました!ですが、その部分以外は自分でこだわって作成したので、自分で作成した部分の内容をメインに書いていこうと思います!(Redshiftに対してクエリを送信して、クエリ結果をスプレッドシートに出力しているコード部分が全く分かっていないというわけではない!はず。。。)

GASとは


今回自分が触っていた、GASとはGoogle App Scriptの略です。主に、Googleが提供しているサービス(Googleスプレッドシートなど)に対して、月ごとにスプレッドシートを作成するなどの機能を持たせることができるJava Scriptと似たプログラミング言語です。今回自分が触った感じでは、基本的な部分はJavascriptの記法と同じだと感じました。そのため、Googleの提供しているサービスの一部を、便利にするために使用してみるといいかもしれません。

今回自分が触ってみて作成したものの概要

めちゃくちゃ簡略化すると上記のような絵になります。script実行スプレッドシートからで、GASで書かれたスクリプトを実行して、指定のディレクトリ(フォルダ)に新しくスプレッドシートを作成して、作成したスプレッドシートに対して、script実行スプレッドシートのデータを丸々コピーするというものです。(実際には、その作成したスプレッドシートに対して、RedshiftAPIを使用してクエリを送信して、受信したものを張り付けるという処理も含まれているが、自分で作成したものではないため割愛。)

上記で述べているものを作成することができるとなると、毎月スプレッドシートを作成して帳簿を作成しなければならない作業などを、ボタン一つで行うことができるようになったりします!(プログラマーあるあるだが、数回の微小な苦労よりも作成の膨大な苦労を考慮できない場合なら作成するほうが後々便利かも。。)

GASスクリプト本体部分

GASでは、ファイルの移動などが、自分のマシンのファイルの移動などのイメージで移動することができないため、特殊な方法を用いて移動する必要があります。したがって、簡単にフォルダを作成する・スプレッドシートの内容をコピーするなどの手順でも、少しややこしかったです。

実際に新しいフォルダを作成して、そこにテンプレートシートをコピーしたものを入れる処理のフロー

スプレッドシートコピーのスクリプトでは、テンプレートシートを直接指定のフォルダの中にコピーすることができなかったため、少し回りくどいことをしています。スプレッドシートは、コピーする場合でも新規作成する場合でも、ルートディレクトリ(Google Driveのマイドライブ直下)に作成されてしまいます。そのため、最初に作成したスプレッドシートをファイルとして1度指定のフォルダにコピーしてから、ルートディレクトリに残るスプレッドシートを削除する必要がありました。この部分は、慣れないとすこし煩わしく感じるかもしれないです。スプレッドシートを移動してから、何か処理を行う場合は、移動などを考慮する必要はなかったです。ややこしい。以上が、だいたいAWSを触らない部分で作成したスクリプトの大枠です。

便利なコード

ここでは、自分がGASを触った際に便利だと感じたコード(1つしかないが)を書いていこうと思います。

・create_Menu

このコードを使用すると、スプレッドシート上に新しくタブを作成することができます。自分の場合では、この部分にスクリプトを実行するボタンを作成しました。これで、毎回実行するために拡張機能 > App Scriptを開く必要がなくなりました。

最後に


今回はGASを少し触ってみたのでそのことについて、初歩的な部分の内容だけ話をしてみました。深く話すと、自分が触っていないAWSのRedshiftAPIとの接続のことについても書くことはできますが、その部分についてはまた自分でいったんコードを書いてみてから、再度ブログに書いていきたいと思います。

投稿者 marumoto tokito

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です