分かりづらい数字の羅列もグラフを使って分かりやすくなります!【後半】

2014-09-20

さて、前回はグラフの作成をGoogle Apps Scriptを使って自動化する方法を紹介しました。ただ、自動化と言っても完全自動ではなく、グラフを表示させるにはブラウザからアクセスしないと見れませんでした。今回は、そのグラフ作成を定期的に完全自動で作成する方法を説明します。

想定するシーン想定するシーン

今回は以下の様な業務をすることを想定して自動化を検討してみたいと思います。

  • 出荷は週に毎日ほぼ実施している。
  • 出荷の都度その実績を記録している。
  • 前週の出荷実績を翌週の月曜日の朝会でみんなで確認したい。

上記の要件ですと、出荷状況のグラフは月曜日の朝に自動的に出力されているのが望ましいですね。

グラフを作る元情報としては、出荷の都度出荷内容や金額を記録しています。これはGoogleフォーム等を使うとプログラミングしないでも記録する仕組みが作れます。ただ、ちょっと不便な部分も多いので、この農園観察日記ではもっと楽にスマートフォンから登録できる仕組みを提供していく予定です。今回もその仕組みを利用する前提でいます。記録されたデータは以下のようになります。

出荷管理データ①

画像をクリックすると拡大表示されます。

このように最初の2行はヘッダーのようになっていて、実際は3行目からデータが記録されていきます。Googleフォームでも似た様なレイアウトで記録することができますが、列の並びがバラバラだったり使いづらい点が多少あります。

  • 記録は継続して実施しているが、1週間毎に別シートに記録しているので全てのデータを集計すればよい。
  • グラフは日付別の出荷金額とする。日別の集計はスプレッドシートの計算式またはGASで別途実施してある。
出荷管理データ②

画像をクリックすると拡大表示されます。

実際はもう少し色々な集計すると思いますが、今回はグラフをGASを使って作成することと、それをメール通知することが目的なので簡易的にしています。まずは基本的なやり方さえマスターすれば、あとはその組合せで色々な応用が出来ますのでまずは基本を押さえましょう。

グラフを定期的に作る準備グラフを定期的に作る準備

まずはグラフの作成です。前回はグラフは画像データとして作成して、それをWebページとして見れるようにしました。これは処理が呼ばれる都度グラフ作成しているので、1回だけ見るのであればいいですが、今回のように複数の従業員が何度か見る可能性がある時には、ちょっと非効率ですね。また、後で過去をさかのぼって見たりする可能性もありますので、Googleドライブ上に保存しておけると便利です。できれば、グラフのもとになった表と一緒になっているのが望ましいですね。
前回はスクリプトでグラフ作るには、画像化する方法しかないとしていましたが、GASのマニュアルを調べていたら、Google スプレッドシートのグラフ機能をGASから呼出す方法がありました。これであれば、スプレッドシート上に表と一緒にグラフを載せるので便利ですね。そして、自動で出力した後に、人がスタイルとかを修正することもできます。

では、そのグラフを作っているコードを見てみましょう。

/**
 * グラフを作成する
 */
var createChart = function(request) {

  // グラフを作成するユーティリティ
  var chartUtil = Fun.createChartUtil(fileId, {logFileId: logFileId});

  // シートにグラフを挿入するメソッドを呼出す
  chartUtil.insertChart(
    'summary',                      // グラフを作成するシート名
    Charts.ChartType.COLUMN,        // グラフ種類(棒グラフ)
    '前週の曜日別売上高',              // グラフタイトル
    [1, 1, 8, 2],                   // グラフに表示するデータの範囲(A1:B8)
    [2, 4, 0, 0],                   // グラフの場所(左上がE5)
    {}
  );

  return {};
}

ん、実質1行ですね。これは自作のユーティリティを使っています。グラフ作成等はよく使う機能ですね。このような機能はユーティリティという形で、決まった手順(コード)を別で作っておきます。そして、毎回違う部分だけをそのユーティリティを呼出す時に渡すようにします。このようにすると、1回に書くコードが短くなるので間違いが減り品質が上がります。また、毎回同じ様なコードを書く必要がなくなり作業効率も上がります。
GASの場合には、このようなユーティリティを作る仕組みとしてライブラリーという仕組みがあり、誰でも使うことができるのです。また、この辺りの仕組みは説明します。作成されたグラフは以下のように、元表のすぐ横に作られます。

出荷管理データ③

画像をクリックすると拡大表示されます。

また、ここで使用したGASのライブラリーとして開発したユーティリティに関しても、近日中にホームページで公開します。当面は無料で提供していく予定ですので、お待ちください。

グラフ作成を自動化するグラフ作成を自動化する

さて、このグラフ作成処理を自動化したいと思います。グラフ作成の処理は毎週月曜日の朝に実行したいです。この様に決まった時間に処理を動かすことのできる仕組みがGASに用意されています。これをトリガーと呼びます。ではトリガーの登録のやり方を見ていきましょう。

まずはトリガーで呼出す為のメソッドを用意します。先程の関数を直接呼出してもいいのですが、引数の指定がトリガーではできません。従って、引数を指定してくれる関数を別途用意します(但し、今回は特に引数は使っていませんが、通常は外部から引数を使ってデータの範囲等を指定することになるでしょう)。

/**
 * グラフ作成処理を呼出す
 */
function createChart() {
  var request = {};
  createChart(request);
}

まずはスクリプトエディターのメニューの「リソース」から「現在のプロジェクトのトリガー」というメニューを選択します。

トリガー指定①

画像をクリックすると拡大表示されます

まだトリガーは設定していないので、ポップアップで表示されるダイアログには何も表示されないと思います。そのダイアログにあるリンクをクリックすることで新規のトリガーを作成することができます。

トリガー指定②

画像をクリックすると拡大表示されます。

そして、トリガーを設定する為のパラメータが表示されるので、以下のように設定します。

トリガー設定③

画像をクリックすると拡大表示されます。

これで毎週月曜日の朝に出荷状況を示したグラフが作成されます。今回は記録したデータから集計データを作るところは省略してしまいましたが、GASまたはスプレッドシートの関数を上手く使えば人が手を出す必要なく作ることはできます。そうすれば、これで完全自動で毎週グラフが作成されます。

あとは、メールによる通知ですね。グラフができた時点でメールが受信できれば忘れることも少なくなりますね。今回は少し長くなってしまったので、メールによる通知に関しては次回続きを書きたいと思います。

マーク次にこちらの情報をご覧ください

  • 無料レポート

スポンサーリンク

Copyright(c) 2014 Natural Fun Factory All Rights Reserved.