概要
もともとこういう楽ちん系のスクリプトはよく作っていたんですが、それもGPTにやってもらうことが増えました。
出来上がり自体はまあまあ便利なので、投げた質問と合わせて記録しておきます。
準備するもの
- Googleアカウント
- ChatGPTアカウント
投げた質問
最初の指示
ちょっとカスタマイズ
リファクタリングぽいこと
できあがりスクリプト
const TEMPLATE_ID = 'テンプレートファイルのIDをここに入力';
const DESTINATION_FOLDER_ID = '複製先のフォルダのIDをここに入力';
function copyAndReplaceDocument() {
const template = DriveApp.getFileById(TEMPLATE_ID);
const newDocumentFile = duplicateFile(template);
moveFileToFolder(newDocumentFile, DESTINATION_FOLDER_ID);
copyFilePermissions(template, newDocumentFile);
replaceDateInDocument(newDocumentFile);
logNewDocumentUrl(newDocumentFile);
}
function duplicateFile(file) {
return file.makeCopy();
}
function moveFileToFolder(file, folderId) {
const destinationFolder = DriveApp.getFolderById(folderId);
destinationFolder.addFile(file);
DriveApp.getRootFolder().removeFile(file);
}
function copyFilePermissions(srcFile, destFile) {
const viewers = srcFile.getViewers();
viewers.forEach(viewer => {
destFile.addViewers(viewer);
});
const editors = srcFile.getEditors();
editors.forEach(editor => {
destFile.addEditor(editor);
});
}
function replaceDateInDocument(file) {
const doc = DocumentApp.openById(file.getId());
const body = doc.getBody();
const currentDate = Utilities.formatDate(new Date(), 'JST', 'yyyy/MM/dd');
body.replaceText('{{作成日付}}', currentDate);
}
function logNewDocumentUrl(file) {
const newDocumentUrl = 'https://docs.google.com/document/d/' + file.getId();
Logger.log('新しいドキュメントのURL: ' + newDocumentUrl);
}
終わりに
この使い方は、どちらかというとエンジニアじゃなくて営業系のマネージャーとかでエクセル使いこなしてる人がやったらいいと思うんですよね。
おまけ
作成させてる動画を上げてみました。