Google ドキュメントなどのファイルのコピーを自動で複数作成する方法

はじめに

授業で Google Drive にある Google ドキュメント,Google スライド,Google スプレッドシートなど共同編集できるファイルをワークシートとして利用されている方もいらっしゃるかと思います(グループワークにおけるそれらのファイルの使い方は別途また書こうと思います).

特にグループワークでのスムーズな利用を考えると,グループごとにファイルを用意したいときがあります.ただ,ワークシートをグループ数分用意しようと思うと,ファイルのコピーにかなり手間がかかってしまいます.具体的には,Google のファイルはコピーを作成するためには,毎回ファイルを右クリックして「コピーを作成」しないといけません.

そこで,Google Apps Script (GAS) を使うと簡単にファイルを複製できるので,今回はそのような,Google ドキュメントなどのファイルのコピーを自動で複数作成する方法をご紹介します.つまり,以下のような困っていることに対して解決策を紹介します.

困っていること

Google ドキュメントなどをグループ数分用意するのにコピペ作業が多く,時間がかかって大変

解決策

Google Apps Script を使って,自動でファイルのコピーを複数作成して作業を効率化!

そこで,まず,Google Apps Script について簡単に説明した後に,ファイルのコピーを自動で複数作成する方法を紹介します.

Google Apps Script (GAS) とは

Google Apps Script(GAS)とは,Google が提供しているプログラミング言語(JavaScriptベースのスクリプト言語)で,これを利用すると Google ドキュメント,スプレッドシート,スライドなどのサービスをカスタマイズできます.プログラムのコードのことをここではスクリプトと呼んで説明します.

例えば,今回のようにファイルをコピーしたり,Google Drive のフォルダをコピーしたり(実はデフォルトの機能にはありません),Google ドキュメントを PDF 化して保存したり,など多様なことが実現できます.

今回は,GAS を使って,ファイルのコピーの自動作成を実現します.以下,そのスクリプトについて説明します.

今回紹介するスクリプトを用いてできること

まず,これから紹介するスクリプトでできることを説明します.できることは以下のとおりです.

  • 指定したファイルのコピーを指定した数だけ同じフォルダに作成する
  • コピペした後のファイル名は「元のファイル名_番号」となる

例えば,コピーしたいファイル名が「ワークシート」で,コピーする数が5の場合,スクリプトを実行すると,「ワークシート」が保存してあるフォルダに「ワークシート_1」「ワークシート_2」「ワークシート_3」「ワークシート_4」「ワークシート_5」が生成される,といった具合です.

ファイルのコピーを複数作成するスクリプト

以下がスクリプト本体ですが,GAS 使ったことない人は「!?」状態ですよね.次から,そもそもどうやってこのスクリプトを使うのかについて説明していきます.GAS 知っている方は,説明不要だと思うので,以下のスクリプトをご自由にお使いください(そもそも GAS 知っている方はこれぐらいすぐ作ってしまうかもしれませんが…).

// 指定したファイルを指定した数だけ同じフォルダにコピペする
// コピー後のファイル名は「元のファイル名_番号」となる
function copyFiles() {
  var id = "コピーしたいファイルのID";
  var n = 5; // コピーする数
  
  var fileBase = DriveApp.getFileById(id);
  var nameBase = fileBase.getName();
  
  for(var i=0; i<n; i++){
    var nameNew = nameBase + "_" + (i+1);
    fileBase.makeCopy(nameNew)
  }  
}

スクリプトの使い方

ここから,スクリプトの使い方を説明します.
大まかな流れは以下のとおりで,一つ一つステップに沿って説明します.

  1. スクリプトファイルを作成する
  2. スクリプトをコピペして保存する
  3. ワークシートやコピーする数を指定する
  4. スクリプトを実行する

スクリプトファイルを作成する

Google Drive に移動して,「新規」→「その他」→「Google Apps Script」を選択して,スクリプトファイルを作成します

スクリプトをコピペする

最初に書いてあるスクリプトを全て削除して,上記のスクリプトをコピペして,「プロジェクトを保存」ボタンを押します(必要に応じて「無題のプロジェクト」をクリックして,プロジェクト名を変更します).

ワークシートやコピーする数を指定する

次にコピーしたいワークシートやコピーする数を指定するのですが,そのためには少しスクリプトを修正する必要があります(難しくないのでご安心を).

具体的には,以下の部分を修正します.コピーしたいファイルの ID を指定するのと,コピーしたい数を指定します.

  var id = "コピーしたいファイルのID";
  var n = 5; // コピーする数

コピーしたいファイルの ID の設定方法

コピーしたいファイルの ID を設定するには,その ID を取得する必要があります.以下,その ID の取得方法を説明します.

目的の Google ドキュメントやスライドを開いてみてください.そうすると URL が以下のようなものになっているかと思います.

https://docs.google.com/document/d/1gYpGFHj9-jviLPR8bbKkfh-GljxCa_bjALWzxzxzxzx/edit

わかりにくいのですが,「1gYpGFHj9-jviLPR8bbKkfh-GljxCa_bjALWzxzxzxzx」というところが,そのファイルの IDです.「コピーしたいファイルのID」の部分を,その ID に置き換えましょう.例えば以下のとおりです.

var id = "1gYpGFHj9-jviLPR8bbKkfh-GljxCa_bjALWzxzxzxzx";

コピーしたい数の設定方法

これは簡単で,「5」となっているところを,コピーしたい数に変更してください(全角数字ではなく,半角数字でお願いします!).例えば,10枚コピーを作りたい場合は,以下のように修正します.

var n = 10; // コピーする数

例えば,「https://docs.google.com/document/d/1gYpGFHj9-jviLPR8bbKkfh-GljxCa_bjALWzxzxzxzx/edit」という URL を持つ,Google ドキュメントのファイルのコピーを20枚作成したい場合は以下のようなスクリプトになります.

// 指定したファイルを指定した数だけ同じフォルダにコピペする
// コピー後のファイル名は「元のファイル名_番号」となる
function copyFiles() {
  var id = "1gYpGFHj9-jviLPR8bbKkfh-GljxCa_bjALWzxzxzxzx";
  var n = 20; // コピーする数
  
  var fileBase = DriveApp.getFileById(id);
  var nameBase = fileBase.getName();
  
  for(var i=0; i<n; i++){
    var nameNew = nameBase + "_" + (i+1);
    fileBase.makeCopy(nameNew)
  }  
}

スクリプトを実行する

設定ができたら「実行」ボタンを押して,スクリプトを実行します.

初めて実行する場合は,「承認が必要です」と出てきます.その場合は焦らずに「権限を確認」を押して,自分の Google アカウントを選択して,「許可」を押すと実行することができます.

これで,指定したファイルのコピーが同じフォルダに指定した数だけ生成されました.

おわりに

このようにスクリプトを利用すると,グループ毎に利用可能なワークシートを手軽に複数作成できます(これ動画の方がわかりやすいなと感じてきたので,今後余裕があれば動画作りをしてみたいと思います.また少しわかりにくいところもあるかもしれないので適宜本記事は修正するかもしれません).

より良い教育を実現する上で,教員の負担を軽減することも重要だと思っていて,今回の Tips がみなさんの教育に役立てば幸いです!