1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Googleドキュメントを自動で複製するGASスクリプトをChatGPTにつくらせた記録

Last updated at Posted at 2023-05-13

概要

もともとこういう楽ちん系のスクリプトはよく作っていたんですが、それもGPTにやってもらうことが増えました。
出来上がり自体はまあまあ便利なので、投げた質問と合わせて記録しておきます。

準備するもの

  • Googleアカウント
  • ChatGPTアカウント

投げた質問

最初の指示

2023-05-13_09h56_44.png

ちょっとカスタマイズ

2023-05-13_09h56_54.png

2023-05-13_09h57_00.png

リファクタリングぽいこと

2023-05-13_09h57_07.png

できあがりスクリプト

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);
}

終わりに

この使い方は、どちらかというとエンジニアじゃなくて営業系のマネージャーとかでエクセル使いこなしてる人がやったらいいと思うんですよね。

おまけ

作成させてる動画を上げてみました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?