スプレッドシートをGASでコピーしてみる
今回の記事では、GASを使ってスプレッドシートをコピーする方法をご紹介します。スプレッドシートのコピーは名前を指定するだけで実行できますので、使い方は非常に簡単です。
しかしながら、スプレッドシートをコピーする頻度は少なくないので、ぜひやり方を覚えてもらいたいです。
GASでは処理はできるだけシンプルな方が良いので、注文書や見積書など、定型フォーマットがあるようなファイルをGASを使って量産する場合などに、テンプレートファイルをコピーして値を書き込んでいくというような機能を実装する機会は多くあります。
その際に活用できるのが今回ご紹介するcopy()というメソッドです。
今回はSpreadsheetAppのcopy()メソッドのご紹介ですが、DriveAppにもmakeCopy()というメソッドがあり、ドライブ上にあるファイルはmakeCopy()メソッドでもコピーが可能です。
ちなみに、上記2つのメソッドの違いは、コピー先のフォルダを指定できるかどうかが大きな違いかと思います。
DriveAppのmakeCopyでは任意のフォルダにコピーを作成することができるのですが、SpreadsheetAppのcopy()では、コピー先はマイドライブ直下になりますので、コピーしたファイルを任意のフォルダに移動させたい場合はやはり、DriveAppのmoveTo()メソッドと併用することが必要になります。
本記事が役立つターゲット読者
- スプレッドシートをコピーしたい方
- テンプレートをコピーしてファイルを作成したい方
スプレッドシートをコピーするコード
本ページでは、任意のファイル名を付けてスプレッドシートをコピーする方法をご紹介します。
- copy(スプレッドシートをコピーする)
copy(name)のサンプルコード
引数に入れる値
- name(文字列) — コピーしたファイルのファイル名を指定
サンプルコード
const url = "https://docs.google.com/spreadsheets/d/1Gb0cCbdFBWkaodV2U3oxfiQfJ5m8AYTSHW0JQt3TdFU/";
//マイドライブに任意のスプレッドシートファイルをコピーするサンプルコード
function sampleCodeForCopySpreadsheet() {
let name = "サンプルスプレッドシートのコピー";
let ss = SpreadsheetApp.openByUrl(url);
ss.copy(name);
}
変数の説明
url = スプレッドシートURL
name = コピーしたスプレッドシートのファイル名
ss = 取得したスプレッドシートファイル
使い方は非常にシンプルで、コピーしたスプレッドシートのファイル名さえ指定してしまえばマイドライブ直下に任意の名前でスプレッドシートファイルがコピーできます。
上記のサンプルコードでは、スプレッドシートURLを使ってファイルを指定していますが、もちろんスプレッドシートIDを使った方法でも問題なくコピーできます。
今回、サンプルに利用したスプレッドシートは
からアクセスができます。
マイドライブにばかりファイルをコピーしてしまうと、マイドライブがごちゃごちゃになっていしまいますので、コピーしたファイルを任意のフォルダ2移動させるコードも一緒にご紹介します。
//マイドライブに任意のスプレッドシートファイルをコピーして任意のフォルダに移動させるサンプルコード
function sampleCodeForCopyAndMoveSpreadsheet() {
let name = "サンプルスプレッドシートのコピー";
let ss = SpreadsheetApp.openByUrl(url);
let fileId = ss.copy(name).getId();
moveFile(fileId);
}
//任意のフォルダにファイルを移動させるサンプルコード
function moveFile(fileId) {
let folder = DriveApp.getFolderById("1Xz-dUPc3iNU7BSTF80Z6AsZ42iwv3eOj"); //任意のフォルダを指定してください
let file = DriveApp.getFileById(fileId);
file.moveTo(folder);
}
url = スプレッドシートURL
name = コピーしたスプレッドシートのファイル名
ss = 取得したスプレッドシートファイル
fileId = コピーしたスプレッドシートのファイルID
上記コードでは、コピーしたスプレッドシートからスプレッドシートIDを取得して、DriveAppのmoveToメソッドと組み合わせる事によってコピーしたファイルを任意のフォルダに移動させています。
このようにDriveAppと組み合わせることでより実際の業務に即した運用ができるようになると思います。
まとめ
今回は、スプレッドシートをコピーする方法をご紹介しました。
今日から早速使えそうな気がしてきましたよね。
ぜひ、業務の自動化の一助としてください。
コメント