moai's blog

ソフトウェア開発にまつわる内容を記載します。

G Suiteで作ったテンプレートファイルを定期的に特定のフォルダにコピーするスクリプト

なにこれ?

タイトルの通りのスクリプトを作ってみる記事。

困っていたこと

ざっくりいうと

G Suiteとか業務で使っているとテンプレートファイルを作って、それをコピーして使うようになるじゃないですか。 ただ、そうすると毎回、ファイルを右クリックして、コピーしてファイル名書き換えてとかするわけですよ。 めんどくさい。

具体的に言うと

  1. こうして(テンプレートファイルを右クリックしてコピーして) f:id:ryamazaki:20170128160538p:plain
  2. こうして(右クリックして、ファイル名書き換えて) f:id:ryamazaki:20170128160551p:plain
  3. こうする(はぁ、やっとほしいもんが得られた) f:id:ryamazaki:20170128160602p:plain 作業がめんどくさかったわけです。

そのスクリプト

スクリプトの設置方法

事前手順

Googe App Scriptのアプリは事前に追加しておいてください。

  1. 『アプリを追加』から追加する f:id:ryamazaki:20170128161504p:plain

  2. Google App Scriptを接続しておく

f:id:ryamazaki:20170128161559p:plain

手順

そこのディレクトリに行って、ファイル追加と同じ要領で追加してください。 (そこのディレクトリにいく必要はホントは無いけど、運用的にはそこディレクトリにおいておくのが後々のわかりやすさから親切だと思います。)

  1. 新規ボタンからスクリプトを選択して、作成 f:id:ryamazaki:20170128162005p:plain
  2. スクリプトファイルが作成される f:id:ryamazaki:20170128162230p:plain

スクリプト本体

スクリプト作り方

できたスクリプトファイルの中に、以下をそのままコピペします。 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';
}

スクリプトの動作確認

上の再生マークっぽいものをポチッとすれば、実行できます。 f:id:ryamazaki:20170128162636p:plain

定期実行の設定方法

最後に定期実行を設定しておきましょう。 どうせ毎週やるんだから、忘れないように定期実行させておきましょう。

  1. すべてのトリガーからトリガー一覧を見つけて f:id:ryamazaki:20170128163007p:plain
  2. トリガーを追加して f:id:ryamazaki:20170128163014p:plain
  3. よしなに定期実行を設定する f:id:ryamazaki:20170128163023p:plain

やったね

これで、一つ創造的な時間が増えたぞ。