Google Apps Scriptを始めるのは簡単です。この章ではSpreadsheetのスクリプトギャラリーから既存のスクリプトをインストールして探索していきます。 既成のスクリプトのインストールと実行一番早くて簡単なGoogle Apps Scriptを使用する方法はGoogle Spreadsheetのスクリプトギャラリーから既存のスクリプトをインストールすることです。これらのスクリプトはGoogle Apps Script チームやユーザーによって作られた公開スクリプトです。 スクリプトギャラリーのスクリプトをインストールして動かすには
株価情報を取得するスクリプトをインストールしてみましょう。このスクリプトはユーザーのピーターポンが書いたもので彼の許諾の元使用します。グーグルはこのスクリプトには責任を負わないものとします。 株価スクリプトをインストールして実行するには
![]() 最初にスクリプトエディタでスクリプトを開く。ツール>スクリプトエディタをクリックで自動的にロードされる。 スクリプトはonOpen 、getStockという二つの関数を含んでいる。 onOpen関数はスプレッドシートにFiinanceメニューとGet Stockメニューアイテムを加える。スプレッドシートを開いた時にonOpen関数は自動的に実行され、メニューとメニューアイテムを加える。 getStock関数は列に題名を与え、A2からAxセルに置かれた株シンボルを獲得し、株情報を検索して、スプレッドシートにそれを表示する。 株価スクリプトの詳細を見るここから株価スクリプトを詳細に見て行こう。 onOpen() 関数から始めよう。function onOpen() { このコードは、スクリプトをインストールしたスプレッドシートを開いたと同時に実行される。もしスプレッドシートを閉じたり開きなおしたりしたら、スプレッドシートを開いた何秒かあとにFinanceメニューが現れるのがわかると思う。少しばかりの遅れは普通の振る舞いである。 function onOpen() は関数とその関数名を宣言するコードである。中括弧の間にあるコンピューターコードはonOpen() 関数を実行した時に実行に移されるコードになる。onOpen() 関数はスクリプトを含んだスプレッドシートを開いた時に自動的に実行される関数となる。中括弧はこんな感じ{}。(onOpen() がどう動くかの更なる情報はこちらをみてください。Running Scripts in Response to an Event)スクリプトはそれから現在アクティブになってるスプレッドシートのオブジェクトを獲得する SpreadsheetApp.getActiveSpreadsheet メソッドを呼び出す。スクリプトは変数 ss にこのオブジェクトを割当てます。ss のメソッドを呼び出すことによって、スクリプトは実行中のスプレッドシートを操作することができる。メソッドはクラスと独占的に協調し、そのクラスのオブジェクトのある仕事を実行する。 二番目の行はメニューエントリーのGet Stockを定義し、二番目の関数の getStock() とメニューエントリーと関係付る。三行目はaddMenu() メソッドをつかってスプレッドシートにFinanceメニューを追加する。これは二番目の関数、 function getStock() { 関数が宣言された後、var sheet = SpreadsheetApp.getActiveSheet();は現在アクティブなスプレッドシートを獲得し、それをオブジェクト getRange() メソッドを使って5つのセルを識別し、setValue() メソッドで対応するセルに列のヘッダーを挿入する。setValue()メソッドではSymbol,Nameとその他ののヘッダー名を引数とする。メソッドにデーターを引き渡すのに引数を使う。データは文字列データを引き渡す。すなわち平文であり、それぞれの引数はクォーテーションで囲まれる。Symbolは株シンボルを引渡し、名前は株の名前を引き渡す。他も同じく。var row = 2;のラインは変数
if (!symbol) break;のコードは もし最初の列にテキストが存在しないならば、 Logger.log("Updating symbol: " + symbol);の記述はスクリプトが実行されるときにそれぞれのストックシンボルに対するログメッセージを記録する。ログメッセージを見るためには、あなたのスプレッドシートからストックシンボル意外のデータを消してスクリプトエディタからスクリプトを実行し、表示 > ログをクリックする。そうするとそれぞれのストックシンボルに対するログメッセージを表示するパネルを見ることができる。 株価スクリプトを改良するもし株価スクリプトを何回か実行してみたなら、多分以下の一連のイベントを見ることができたと思う。
スクリプトを再実行した時にすべてのセルが更新されるように改良することができる。 スクリプトを改良するため
// if (!sheet.getRange(row, 2).getValue()) もしコードをコメントアウトしたなら、スクリプトエディタでの色が変わることがわかると思う。 4. 以下の行をコメントアウトするか削除する。 // } else {5.スクリプトを保存する。次回に Finance > Get Stockを実行した時全てのセルが更新される。もし数分離れてスクリプトを二回実行したなら、 タイムスタンプが更新されているのがわかると思う。 |