Googleスプレッドシートの一括修正は、Google Apps Scriptを使うと便利

はじめに

初めまして、去年2月に新卒で入社した大橋です。

Googleスプレッドシート(以下、スプレッドシート)でテスト仕様書を作った時の話ですが、指摘された修正点を全シート(全部で30シート以上も!)に反映しないといけなくなりました。これを手作業でやると、時間がかかる他、書き間違いなどのミスもしやすいです。そこで「Google Apps Script」 を使ってみました。ボタン一つで全シートに修正点を反映することができ、便利なツールだと感じました。

そこで、今回は「Google Apps Script」の使い方をご紹介いたします。内容としては初歩的ではありますが、開発作業に限らず、幅広い業務で使えるテクニックだと思います。

Google Apps Scriptってなに?

Googleドキュメント、Gmail、 Googleカレンダー…使ったことがなくとも聞いたことはあるかと思います。こういったGoogleが提供してるオンラインサービスの総称がGoogle Appsです。

「Script」という言葉が付いているので何か新しいプログラミング言語かと思うかもしれませんが、実はそうではなく、JavaScriptによってGoogle Appsを操作するためのスクリプト環境です。

事前準備・環境設定

基本的にインターネット環境とコンピューターがあれば大丈夫です。ブラウザに関してはどれでもOKですが、私はGoogle Chromeを使っています。

またGoogleアカウントをお持ちでない方は、Googleアカウントを取得して、Google Appsを使えるようにしましょう。

スクリプトエディタを開く

  1. Googleドライブ画面で「新規」ボタンをクリック→スプレッドシートを選択
  2. メニューのツールをクリック→スクリプトエディタを選択
  3. 「空のプロジェクト」を選択

NewFunc

これがスクリプトエディタの最初の画面です。{}の中にスクリプト文を記述していきます。

例えば、月々の勤務時間を1シートごとに記入している勤務表があるとします。しかしその勤務表の氏名のところが間違っていました。氏名が入るセル(T3):「日本太郎」を「アトラス太郎」にしなければなりません。

実行前:
JanBeforeFebBefore
*このサンプルは実在するデータを一切使っておりません。

スクリプト文

gas_sample

このスクリプトは、すべてのシートを取得し、指定されたセルの内容を変更します。メニューバーの「▶︎」ボタンを押して実行します。

実行後:
JanAfterFebAfter
↑指定されたセルだけ変更されていることが確認できます。2月のシートにもちゃんと反映しています。

このように、Google Apps Scriptを使って変更すると、全てのシートに対して一括で修正を反映することができるので、シートごとに手動で修正する必要がなくなります。活用すればかなりの作業時間が短縮されるでしょう。

もちろん他にも色々な操作ができます。例えば、以下のようなことができます。

操作 スクリプト文例 説明
セル内容の削除(クリア) sheet.getRange(‘A1:B2’).clear(); A1からB2のセルを空にする
行の追加 sheet.insertRowAfter(3); 3行目の下に1行追加
行の削除 sheet.deleteRow(2); 2行目を削除
列の追加 sheet.insertColumnAfter(‘D’); D列の右に1列追加
列の削除 sheet.deleteColumn(5); 5列目を削除

終わりに

今回はスプレッドシートを操作する簡単なスクリプトを紹介しましたが、Google Apps Scriptは、Googleのほぼすべてのサービスに対応しています。使いこなすには、プログラムの知識も多少必要かもしれませんが、それほど難しいものではありません。ぜひいろいろ試してみてください。

参考文献

Google Apps Script: https://developers.google.com/apps-script/reference/spreadsheet/ (英語)