GASで時間節約!Google スプレッドシート

Google Sheets

はじめに

Google スプレッドシートを使っていると、何度も同じ作業をするなどして面倒だと思うときがある
マクロを使うことでも解消できるかもしれないが、少し複雑な作業となるとマクロではうまくできない場合もあるだろう
そこで、Google Apps Script (GAS)を使用して、作業を短縮させたいと思う

Apps Scriptの使い方

まず適当なスプレッドシートを作成しよう
今回のスプレッドシートのファイル名はSampleGoogleSheetsとした
Sheets

メニューから拡張機能からApps Scriptを選択する
Sheets

別のタブが開き次のような画面に移動する
Apps

まずプログラムを書いてみる

function myFunction() {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    sheet.getRange("A1").setValue("テスト");
}

GAS
このように記載したらプログラムを動かしてみよう
画像の実行ボタンをクリック
GAS
承認するかを聞かれるので権限を確認するをクリック
GAS
アカウントを選択しよう
GAS
このような画面が出てくるので詳細をクリック
GAS
無題のプロジェクトに移動をクリック
GAS
許可をクリック
GAS
これでプログラムが実行されたようだ
GAS
シートに戻ってみるとテストという文字が入ってるのがわかる
GAS

自動で日付を入れてみよう

では一度Apps Scriptのタブページに戻りコードを書き換える
日付を取得する関数は Date() になる
それでは下記のように書き換えてみよう

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var currentDate = new Date();
  sheet.getRange("A1").setValue(currentDate);
}

書き換えたら実行をクリック
GAS
このように日付が入ったはずだ

自動で行を追加し現時刻を記載

特定のセルに自動で入力していたが、行を新しく追加して現時刻を挿入したいと思う

  • 行を追加する
  • 日付と現時刻を取得し挿入する
    この2点となる
    それではコードを書いてみよう
function myFunction() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.insertRowBefore(1);
  var currentDate = new Date();
  var formattedDate = Utilities.formatDate(currentDate, Session.getScriptTimeZone(), "yyyy-MM-dd HH:mm:ss");
  sheet.getRange("A1").setValue(formattedDate);
}

記載したら実行してみよう
画像のようになるはずだ
GAS
先ほど作成した日付の上に行が追加され、日付と時刻が入ったのがわかる
このままで再度実行してみよう
GAS
さらに行が追加されたのがわかる

スクリプトをUIに追加して使いやすくカスタイマイズする

それでは今作成したGASの無題のプロジェクトをUIで使いやすくしてみよう
まず名前を変更しよう
無題のプロジェクトの部分をクリックすると名前を変更することができる
今回はSampleDataと名付けた
GAS
名前を変更したらコードに下記を追加する

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('スクリプトメニュー')
      .addItem('日付A1', 'myFunction')
      .addToUi();
}

コード全体は画像のようになる
GAS
プロジェクトを Ctrl + s もしくは保存ボタンで保存しよう
GAS
そうしたらスプレッドシートに戻り、スプレッドシートを Ctrl + r もしくはブラウザの更新ボタンで更新させる
するとスクリプトメニューが表示されるはずだ
GAS
これは先ほど書いたコードの onOpen という関数で、ページを開いたときにメニューが作れたからだ
実際にクリックしてみると日付A1という項目ができているはずだ
GAS
そして日付A1をクリックするとスクリプトが実行されA1のセルに日付が入る
GAS

さいごに

このようにGASを使用するとスプレッドシートでの作業が大幅に楽になる
いつも使うような作業などはスクリプトにすることで時間節約をすることができる
今回はとても小規模で簡易的なものを作成したが、より複雑なものも作ることもできる

簡易的な用語説明

  • GAS : Google Apps Script

コメント