Web Direction Magazine

新卒webディレクター。webやIT関係の記事を主に書いています。

【スポンサーリンク】

【GASでスプレッドシートHack】定期的に自動でシートを作成する方法

今回はGoogle Apps Script(通称GAS)を使って「定期的に作成しているシートを自動で作成する」というスプレッドシートHackをご紹介します!

 

 

皆さんは普段の業務中にスプレッドシートをどのくらい使うでしょうか。

エクセルしか使わないよ!という方も多いと思いますが、IT系企業を始めとしてスプレッドシートやhangoutなどを業務で使用する方も増えてきていると思います。

 

 

 

しかしスプレッドシートは非常に不評です。エクセルの使い勝手からすると非常に使いづらいしイケてない。そんな意見を頂くことも多々あります。

 

 

そこで、新卒ながら社内の「作業」を自動化したらどうだろうかと常々考えていた私は、スプレッドシートを"イケてる"(ここ大事)ツールにしてやろうと考えるようになりました。

 

 

おそらく今使いづらいと言っている人たちは単純に使いこなせてないだけ、という仮説のもと、GASを導入して「作業」を自動化する方法を模索していたのですが、そのうち1つが最近完成しました。簡単なコードですし、なくなった「作業」自体もちっちゃな「作業」です。

 

が、塵も積もれば山となるということでご紹介します。

 

 

定期的に作成しているシートの作成を自動化

定例ミーティングなどのために定期的に作成しているシートなどないでしょうか。

フォーマットも同じで、シート名を「◯月◯日」とか「◯月第◯週」みたいな名前にするだけであれば自動化しちゃった方が楽じゃないかということで自動化しちゃいました。

 

以下、手順です。

 

「master」という名前のシートを用意する。

f:id:webdirection:20170902231320p:plain

 

 

GASのコードを記入する

「ツール」タブ→「スクリプトエディタ」でコードを記入できる。

f:id:webdirection:20170902231503p:plain

 

 

コードを記入して保存する

以下のコードを記入し、保存ボタンを押す。

f:id:webdirection:20170902231625p:plain

 

<コード>

// シート"master"を複製する関数
function AutoSheetCopy(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
// スプレッドシートを取得
var templateSheet = ss.getSheetByName('master');
// コピー元のシートを取得(今回は master というシート)
ss.insertSheet(getWeeks(), 0, {template: templateSheet});
// シートをコピー
}

// 現在の月と週数を取得する関数
function getWeeks(){
var today = new Date();
// 現在の日時を取得
var out = (today.getMonth() + 1) + "月";
// 現在の日時から、月を算出
out += "第" + Math.floor((today.getDate() - today.getDay() + 12 ) / 7) + "週";
// 現在の日時から、週数を算出
return out; // m月第w週 という形の文字列を戻り値として返す
}

※getDate():日付を返すオブジェクト

※getDay():曜日を返すオブジェクト。0が日曜日で6が土曜日。

 

EX) 9月8日(金)なら、8 - 5 + 12/ 7 = 15 / 7 >=2

なので「9月第2週」というシート名でアウトプットされる。

 

 

関数を選択する 

f:id:webdirection:20170902231851p:plain


 

実行ボタンを押す

f:id:webdirection:20170902231953p:plain

 

 

承認する

以下のような画面になるので、「許可を確認」を押す。

f:id:webdirection:20170902232049p:plain

 

 

先頭に作成したシートが出来上がる

f:id:webdirection:20170902232126p:plain

 

 

トリガーを設定する 

なお、下の画像にある時計のイラストのボタンを押すとトリガーを設定できるようになります。トリガーとは、コードを動作させるために必要な条件のことで、日付や週などで設定することができます。

f:id:webdirection:20170902233842p:plain

 

これを「時間主導型」、「週タイマー」、「毎週月曜日」、「午前8時~9時」などと設定しておけば、決まった曜日の決まった時間帯にコードを動かしてくれます。

 

今回の場合だと、毎週月曜日の8~9時に新しいシートを「◯月第◯週」という名前で作成する、という設定をすることになります。

 

 

 

さて、以上がGASを使ったスプレッドシートHackの方法でした。

ぜひ、業務中にある「作業」を効率化してみてください!

【スポンサーリンク】