G Suiteで作ったテンプレートファイルを定期的に特定のフォルダにコピーするスクリプト
なにこれ?
タイトルの通りのスクリプトを作ってみる記事。
困っていたこと
ざっくりいうと
G Suiteとか業務で使っているとテンプレートファイルを作って、それをコピーして使うようになるじゃないですか。 ただ、そうすると毎回、ファイルを右クリックして、コピーしてファイル名書き換えてとかするわけですよ。 めんどくさい。
具体的に言うと
- こうして(テンプレートファイルを右クリックしてコピーして)
- こうして(右クリックして、ファイル名書き換えて)
- こうする(はぁ、やっとほしいもんが得られた) 作業がめんどくさかったわけです。
そのスクリプト
スクリプトの設置方法
事前手順
Googe App Scriptのアプリは事前に追加しておいてください。
『アプリを追加』から追加する
Google App Scriptを接続しておく
手順
そこのディレクトリに行って、ファイル追加と同じ要領で追加してください。 (そこのディレクトリにいく必要はホントは無いけど、運用的にはそこディレクトリにおいておくのが後々のわかりやすさから親切だと思います。)
スクリプト本体
スクリプト作り方
できたスクリプトファイルの中に、以下をそのままコピペします。 templateのファイルIDと、フォルダのIDは置き換える必要があるので、注意してください。
function copyFileFromTemplate() { // template Docを取ってくる // (参考)DocのfileIdは一番最後のやつ。下の例では、 hogehogehogehogehogehogehoge がDocのfileId // https://docs.google.com/document/d/hogehogehogehogehogehogehoge/edit var templateDocFile = DriveApp.getFileById('hogehogehogehogehogehogehoge'); // ファイルをコピーして、フォルダに格納する // (参考)IDは一番最後のやつ。下の例では fugafugafugafugafugafugafuga がID // https://drive.google.com/drive/folders/fugafugafugafugafugafugafuga var weeklyNoteFolder = DriveApp.getFolderById('fugafugafugafugafugafugafuga'); templateDocFile.makeCopy(getWeeklyNoteTitle, weeklyNoteFolder); } /* weeklyのファイルを作成する */ function getWeeklyNoteTitle(){ var date = new Date(); var y = date.getFullYear(); var m = date.getMonth() + 1; var d = date.getDate(); var w = date.getDay(); m = ('0' + m).slice(-2); d = ('0' + d).slice(-2); // フォーマット整形済みの文字列を戻り値にする return y + m + d + ' weekly'; }
スクリプトの動作確認
上の再生マークっぽいものをポチッとすれば、実行できます。
定期実行の設定方法
最後に定期実行を設定しておきましょう。 どうせ毎週やるんだから、忘れないように定期実行させておきましょう。
- すべてのトリガーからトリガー一覧を見つけて
- トリガーを追加して
- よしなに定期実行を設定する
やったね
これで、一つ創造的な時間が増えたぞ。