はじめに
Google スプレッドシートを使っていると、何度も同じ作業をするなどして面倒だと思うときがある
マクロを使うことでも解消できるかもしれないが、少し複雑な作業となるとマクロではうまくできない場合もあるだろう
そこで、Google Apps Script (GAS)を使用して、作業を短縮させたいと思う
Apps Scriptの使い方
まず適当なスプレッドシートを作成しよう
今回のスプレッドシートのファイル名はSampleGoogleSheetsとした
まずプログラムを書いてみる
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange("A1").setValue("テスト");
}
このように記載したらプログラムを動かしてみよう
画像の実行ボタンをクリック
承認するかを聞かれるので権限を確認するをクリック
アカウントを選択しよう
このような画面が出てくるので詳細をクリック
無題のプロジェクトに移動をクリック
許可をクリック
これでプログラムが実行されたようだ
シートに戻ってみるとテストという文字が入ってるのがわかる
自動で日付を入れてみよう
では一度Apps Scriptのタブページに戻りコードを書き換える
日付を取得する関数は Date() になる
それでは下記のように書き換えてみよう
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var currentDate = new Date();
sheet.getRange("A1").setValue(currentDate);
}
自動で行を追加し現時刻を記載
特定のセルに自動で入力していたが、行を新しく追加して現時刻を挿入したいと思う
- 行を追加する
- 日付と現時刻を取得し挿入する
この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);
}
記載したら実行してみよう
画像のようになるはずだ
先ほど作成した日付の上に行が追加され、日付と時刻が入ったのがわかる
このままで再度実行してみよう
さらに行が追加されたのがわかる
スクリプトをUIに追加して使いやすくカスタイマイズする
それでは今作成したGASの無題のプロジェクトをUIで使いやすくしてみよう
まず名前を変更しよう
無題のプロジェクトの部分をクリックすると名前を変更することができる
今回はSampleDataと名付けた
名前を変更したらコードに下記を追加する
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('スクリプトメニュー')
.addItem('日付A1', 'myFunction')
.addToUi();
}
コード全体は画像のようになる
プロジェクトを Ctrl + s もしくは保存ボタンで保存しよう
そうしたらスプレッドシートに戻り、スプレッドシートを Ctrl + r もしくはブラウザの更新ボタンで更新させる
するとスクリプトメニューが表示されるはずだ
これは先ほど書いたコードの onOpen という関数で、ページを開いたときにメニューが作れたからだ
実際にクリックしてみると日付A1という項目ができているはずだ
そして日付A1をクリックするとスクリプトが実行されA1のセルに日付が入る
さいごに
このようにGASを使用するとスプレッドシートでの作業が大幅に楽になる
いつも使うような作業などはスクリプトにすることで時間節約をすることができる
今回はとても小規模で簡易的なものを作成したが、より複雑なものも作ることもできる
簡易的な用語説明
- GAS : Google Apps Script
コメント