GAS(Google Apps Script ※1)を使っていて「テンプレートを元に複数のスプレッドシートを作成したい…」と思うことはないでしょうか?
例えば、社員の評価をスプレッドシートで行うとしましょう。そのとき、テンプレートで作成した社員評価票に対して、評価対象者となる人の名前や所属などを入れていきます。
もし手作業で行う場合、数人であれば負担になりませんが、100人を超える社員がいると大きな手間になってしまうものです。そこで、GASを活用することで自動的に評価票の作成を行えるのです。自動作成ができれば、空いた時間で別の業務に時間を回せるなどのメリットもあります。
そこで今回は、GASで複数のスプレッドシートを生成する方法について解説します。
- GAS(※1)
- GASとは、Google Apps Scriptの略であり、Googleが提供しているJavaScriptベースのスクリプト言語です。スクリプト言語を使用することで、Googleサービスを効率化できます。例えば毎日Googleスプレッドシートへ自動で株価データを挿入させたり、スプレッドシートへの権限を振ったり、ボタンを押して自動化ができます。
複数のスプレッドシートを生成するには
複数のスプレッドシートを生成するまでの流れは以下の通りです。
1. テンプレートの読み込み
まずは、テンプレートとなるスプレッドシートを読み込みます。以下のコードは、テンプレートを読み込む処理です。
function main(){ // テンプレートの読み込み var templateFile = DriveApp.getFileById('スプレッドシートキー');
スプレッドシートキーは、URLの「https://docs.google.com/spreadsheets/d/××××××××××/edit#gid=」の×に当てはまる部分です。
2.テンプレートのコピー
次に、読み込んだテンプレートをコピーします。
// 出力ファイル名 var OutputFileName = "テストファイル"; // 出力フォルダ var OutputFolder = DriveApp.getFolderById('フォルダID'); // コピー実行 var newfile = templateFile.makeCopy(OutputFileName, OutputFolder);
スプレッドシートのコピーはmakeCopy関数で行われ、そのときファイル名と出力先フォルダの指定が必要です。今回は、ファイル名を「テストファイル」としてOutputFolderに出力しています。
3.コピーしたスプレッドシートにアクセス
コピー後は、コピーで生成されたスプレッドシートにアクセスします。
// コピー後のファイルID取得 var id_copy_file = newfile.getId(); var newSheet = SpreadsheetApp.openById(id_copy_file);
アクセスするためには、スプレッドシートキーが必要になるので、コピーしたスプレッドシートのスプレッドシートキーを取得するためにgetId関数を使っています。その後、取得したスプレッドシートキーを使ってスプレッドシートにアクセスする流れです。
4. 「3」のスプレッドシートを操作
スプレッドシートにアクセス後は、スプレッドシート内のセルに対して必要な情報を更新していきます。
//シートを選択 var targetSheet = newSheet.getSheetByName('一般社員'); // セルへの更新(評価票) targetSheet.getRange(8, 3).setValue("田中太郎"); //氏名 targetSheet.getRange(9, 3).setValue("情報システム部"); // 所属部署
まずは、スプレッドシートのシートを選択します。今回は、「一般社員シート」に対して作成を行っていきましょう。シートを選択したら、評価対象者の氏名と所属部署などの情報を更新していきます。
5. 「1-4」を繰り返す
後は、ループ処理を使って上記の作業を繰り返していきましょう。繰り返すときには、GASの実行時間問題がつきまとってきます。実行時間問題とは、最大で6分間までしか処理ができないというもので、6分を超えると強制的に処理が終了してしまうのです。
実行時間問題を回避する方法は、前回の記事で解説しているので是非参考にしてください。
GAS(Google Apps Script ※1)には実行時間が6分間という制限があります。6分以上の処理を実行すると途中で止まってしまうため、GASの実行時間に悩む人も多いのではないでしょうか。 そこで今回は、GASの実行時間を少しでも削減できる方法について解説します。 GAS(...
まとめ
今回紹介したスプレッドシートの複製は、テンプレートを元に複数のシートを作成するときに便利です。今回の記事を参考に、普段の業務を効率化してみてはいかがでしょうか。
コメント