例えば「Googleドライブに保存されているテンプレート(雛形)のファイルをコピーしてスプレッドシートを新規作成したい」という場合の方法です。
フォルダを取得する(.getFolderById)
まずはGoogleドライブのフォルダを取得します。.getFolderByIdメソッドを使うことでフォルダを取得できます。
const OutputFolder = DriveApp.getFolderById('XXXXXXXXXXXXXX');
こちらの値を変数に格納しておきます。
ファイルを取得する(.getFolderById)
.getFolderByIdメソッドを使うことでファイルを取得できます。
// テンプレートファイル
const templateFile = DriveApp.getFileById('XXXXXXXXXXXXX');
テンプレートファイルとして予め準備しておいたファイルのfileIDをコピーしてXXXXXの部分に貼り付けしておきます。
こちらの値を変数に格納しておきます。
ファイル名を作成する
コピーした際に、新規作成したファイルだと分かるように、ファイル名を作成します。
const date = Utilities.formatDate( new Date(), 'Asia/Tokyo', 'yyyyMMddHHmmss');
const OutputFileName = templateFile.getName().replace('A', 'B')+'_'+date;
まずは現在の日付・時間をyyyyMMddHHmmssで取得、次に雛形ファイル名を別のファイル名(A:雛形ファイル名、B:変更後のファイル名)してアンダーバー&日付時刻で作成します。
そうすると、変数内にはこのようなファイル名が格納されます。
[rml_read_more]
BBBBBBB_20220912102134
BBBBBBB_20220914112334
BBBBBBB_20220920112134
BBBBBBB_20220922112034
コピーを作成する(.makeCopy)
あとは、指定したフォルダ内に、指定したファイル名で作成すれば、完了です。
templateFile.makeCopy(OutputFileName, OutputFolder);
これで、同じフォルダ内に名前を変更した新規のファイルがコピーされます。
まとめ
これで、ファイルをテンプレート(雛形)からコピーして新規作成することができます。
まずは基本的なシンプルな方法でしたが、Googleフォームなどと組み合わせると色々と便利な場面が出てきそうな気がしますので、ぜひお試しください。