【GAS学習02】GASで作成したフォームを、指定のフォルダに移動する

こんにちは。

めいめいです。

前回はGASでフォームを作成しましたが、
マイドライブへ追加されているのをなんとかしたいと思いました。

今回はタカハシさんのブログを参考に、
指定のフォルダへ移動するスクリプトを理解して書きたいと思います。

こちらの記事を読み込みました↓

tonari-it.com

が…

プロパティストアを使わなくてはいけないらしく、
なんだっけ…となってしまったので
再度学習したいと思います。

プロパティストアとは

プロジェクトやドキュメントに紐づく形でデータを格納しておくことができる格納領域のこと。

プロパティストアには文字列形式のキーと値のペアを格納することができ、スクリプトから読み書きできる。

例えば、スクリプト内で使用するファイルIDやメールアドレス等コードをコピーして再利用する際に流出してしまう心配がある。

そんなときにプロパティストアを使うと、データをコードから分離して管理することができる

を参照しました。

ではどうやってセットするのかというと… こちらを参照してセット&取り出しができました。

tonari-it.com

function setScriptProperty() {
  PropertiesService.getScriptProperties().setProperty('Folder_ID', 'フォルダーIDを入力する');
}

<説明>

  • スクリプトプロパティを取得するgetScriptPropertiesメソッドを使用して、スクリプトプロパティを取得

  • setPropetiesメソッドを使用して、プロパティストアに、指定されたkeyと値valueのペアを設定

プロパティストア使うのに慣れないので、本当にちゃんと設定されているのかな?と不安だったので、以下のスクリプトで確認もしました^^;

function folderID_toridasu() {
  const folderID = PropertiesService.getScriptProperties().getProperty('Folder_ID')
  console.log(folderID);
}

で、そこで、こちらの記事にあるスクリプトを書き書き…

function createEventForm02(){
 
  const ss = SpreadsheetApp.getActiveSpreadsheet()
  const values = ss.getSheetByName('シート1').getDataRange().getValues();
  const formTitle = values[0][1]; //タイトル
  const formDescription = values[1][1]; //説明文

  const form = FormApp.create(formTitle);

  const id = PropertiesService.getScriptProperties().getProperty('Folder_ID'); //フォルダのIDをプロパティストアから取得
  const formFile = DriveApp.getFileById(form.getId()); //フォームのファイルを取得
  DriveApp.getFolderById(id).addFile(formFile);  //指定のフォルダにファイルを追加
  DriveApp.getRootFolder().removeFile(formFile); //指定のフォルダからファイルを削除

  form.setDescription(formDescription);
  
}

実行したところ、
ちゃんと指定のフォルダに移行することができていました!涙

上のスクリプトを書く中で、 DriveAppも勉強しなきゃ…と思いましたが、力尽きました。

tonari-it.com

こちらの記事で説明されているので、 次に、またしっかり読んでおこうと思います。