2021年6月28日月曜日

Google apps script とスプレッドシートでスプレッドシート比較ツールを作ってみる

Google apps scriptというのをたんなるエクセルのマクロのような存在と思いこんでいたりすると、大きなまちがいだなと最近すごく感じています。

実際に、これを使うと、簡単なウェブアプリケーションが作れたりします。例えば、Slackの会話を添付ファイル込みでエクスポートするWebアプリケーションも作れたもします。

 また、Google apps scriptとスプレッドシートをの組み合わせもいい基盤です。入力と出力を必要とするようなツール基盤としていろいろ便利な存在です。

以下の具体例を交えて説明しておきます。

Google apps scriptを使うとカスタムメニューを追加することができます。

コードは簡単です。こんな風に書くだけです。

function onOpen() {
  SpreadsheetApp.getUi()
      .createMenu('比較ツール')
      .addItem('比較実行''executeCompare')
      .addToUi();
}

Spreadsheetのうち一つのシートをパラメータ設定用のシートにして、結果を出力するシートをもう一つ作ると、
パラメータをセットした後に、ツールを実行ということができるようになります。

イメージとして、実際のサンプルツールを作ってみました。
こちらは、2つのスプレッドシートを比較するツールになります。


こちらのスプレッドシートをコピーして実行してみてください。

使い方も簡単に書いておきます。

上の図のようにvarsのシートに
  1. 比較したいスプレッドシートのURLを記載します。
  2. 比較したいシートの名称を記載します。
  3. キーとなるカラムを指定します。(複数時には、カンマ区切り)
  4. 比較したいカラムを指定します。(複数時には、カンマ区切り)
これらをセットして、メニューの比較ツール→比較実行から実行すると、Resultタブに結果が出てきます。
それ以外のシートは作業用です。

結果の例)



比較に使えるサンプルも用意してみましたのでそのまま実行できるのではないかと思います。

30分くらいでぱっと作ったものなので、バグってたらすいません。

2つのファイルを比較するって比較的ニーズはありそうなんですが、もしも、こんなこともやれるようにしたいなどのご要望があったら、
コメント欄からいただければ、ちょっとここから改善してみるかもしれません。

声がなくても、自分用にいろいろ改善していこうかと思っています。