GASで任意のファイルをコピーしてみる
今回の投稿では、GASを使って任意のファイルをコピーするメソッドをご紹介します。
Googleドライブですでにあるファイルをコピーして再利用することはよくあることだと思いますが、自分のパソコン上でコピーするのとは違い、Googleドライブ上でコピーするのには比較的時間がかかります。
つい最近、ChromeブラウザではCtrl + CとCtrl + Vでコピー&ペーストができるようになり、作業効率が少し向上しましたが、依然としてファイルをコピーするには数秒の時間がかかります。
今回は、コピー作業をもっと効率よく行いたいというお悩みを抱えている方のために、GASを使ってファイルをコピーする方法をご紹介します。この方法を活用すれば、ワンクリックで複数のファイルを一括コピーするなんてことも夢ではないですよ。
本記事が役立つターゲット読者
- たくさんのファイルをコピーしながら作業をしなければならない方
- テンプレファイルをベースにGASにファイルを生成させたい方
ファイルをコピーするコード
本ページでは、Googleドライブ上にあるファイルをコピーする方法をご紹介します。
- makeCopy(ファイルIDを使って任意のファイルをコピーする)
動作のデモ動画
makeCopy(fileName, destination)のサンプルコード
引数に入れる値
- fileName(文字列) — コピーしたファイルのファイル名(省略可)
- destination(フォルダオブジェクト) — ファイルを作成したいフォルダ(省略可)
サンプルコード
const fileId = "1MuWaLoCQh8rqzoIEcwuupTPY_70jG4RZLiisyEyP-bQ"; //コピー元のファイルID
const folderId = "1BUAeaiwN3rKrlyZ2xnmkjuATf9NTAd2F"; //コピー先のフォルダID
//元のファイル名 + のコピーという名前でコピー元のファイルと同じフォルダにコピーを作成するコード
function sampleCodeForMakeCopy() {
let file = DriveApp.getFileById(fileId);
let newFile = file.makeCopy();
let rootFolder = DriveApp.getRootFolder();
}
//任意のファイル名でコピー元のファイルと同じフォルダにコピーを作成するコード
function sampleCodeForMakeCopyWithDesignatedFileName() {
let file = DriveApp.getFileById(fileId);
let name = "コピーしたファイル";
file.makeCopy(name);
}
//任意のファイル名でマイドライブにコピーを作成するコード
function sampleCodeForMakeCopyInARootFolder() {
let file = DriveApp.getFileById(fileId);
let name = "コピーしたファイル";
let rootFolder = DriveApp.getRootFolder();
file.makeCopy(name, rootFolder);
}
//任意のファイル名で任意のフォルダにコピーを作成するコード
function sampleCodeForMakeCopyInADesignatedFolder() {
let file = DriveApp.getFileById(fileId);
let name = "コピーしたファイル";
let folder = DriveApp.getFolderById(folderId);
file.makeCopy(name, folder);
}
変数の説明
fileId = コピー元のファイルID
folderId = コピー先のフォルダID
file = コピー元のファイル
fileName = コピーしたファイルのファイル名
rootFolder = マイドライブ
サンプルコードは
にあります。
誰でも閲覧できるように共有設定をしておりますが、もしファイルを開くことができなければブラウザのシークレットモードでアクセスしてください。
今回は、使い方に合わせて4つのサンプルコードを用意しました。
- sampleCodeForMakeCopy(コピー元と同じフォルダにファイルをコピー)
- sampleCodeForMakeCopyWithDesignatedFileName(任意のファイル名でコピー元と同じフォルダにコピー)
- sampleCodeForMakeCopyInARootFolder(任意のファイル名でマイドライブにコピー)
- sampleCodeForMakeCopyInADesignatedFolder(任意のファイル名で任意のフォルダにコピー)
わりと簡単にコピーすることができましたね。
上記のコードを活用すれば、任意の場所に一括で大量のファイルのコピーを作成したりと行ったことができるようになります。
時間短縮になりますので、ぜひ活用してみてください。
まとめ
今回の記事はいかがでしたか?
ファイルのコピーをすることは日常業務でも少なくないと思いますが、その煩雑な作業を効率化してみませんか?GASを使えるようになれば、このような効率化を行うことができるようになりますので、ぜひ身につけてほしい技術です。