みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
Google Apps Scriptで新規スプレッドシートを指定のフォルダに作成する方法をシリーズでお届けしています。
初心者向けですが、スプレッドシートやGoogleドライブなど一通りの基本を覚えられるのでオススメですよ。
さて、前回の記事はこちら。
新規のスプレッドシートの作り方についてお伝えしました。
しかし、作成したスプレッドシートは常にルートフォルダに作成されてしまいます。
ですから、そのファイルを目的のフォルダに移動したい、ということがあるわけです。
ということで、今回はそのための準備としてのGoogleドライブ操作の基本中の基本。
Google Apps ScriptでGoogleドライブのフォルダやファイルをIDで操作する方法です。
ではいってみましょう。
スプレッドシートを指定のフォルダに作成するためには?
冒頭でもお伝えしましたが、スプレッドシートを指定のフォルダに作成することを、ファイルを移動する方法を利用して実現します。
つまり、以下のような手順です。
- Spreadsheet.createメソッドで新規スプレッドシートをルートフォルダに作成する
- 新規スプレッドシートをFileオブジェクトとして取得
- 移動先のフォルダをFolderオブジェクトとして取得
- 新規スプレッドシートのFileオブジェクトを移動先のFolderオブジェクトに追加
- ルートフォルダから新規スプレッドシートのFileオブジェクトを削除
これで、結果的に「指定のフォルダにスプレッドシートを作成した」となりますよね。
手順の1は前回の記事でお伝えした通り、SpreadsheetApp.createメソッドを使って実現できます。
function creatSS() { SpreadsheetApp.create("新規SS"); }
今回は2と3、つまりGoogleドライブのファイルやフォルダを取得する部分を進めていきます。
スプレッドシートをFileオブジェクトとして取得する
スプレッドシートをFileオブジェクトとして取得するにはIDを使って取得する方法が簡単です。
スプレッドシートのIDは、前回お伝えした通り、SpreadsheetオブジェクトのgetIdメソッドで取得できます。
つまり、前述のスクリプトを以下のようにすれば、作成したスプレッドシートのIDが変数idSSに格納されるということになります。
function creatSS() { const id = SpreadsheetApp.create("新規SS").getId(); }
次いで、そのIDからFileオブジェクトを取得するのですが、その場合はDriveApp.getFileByIdメソッドを使います。
書き方はこちらです。
これでGoogleドライブ内の特定のファイルを取得することができます。
スクリプトに以下のように追加をします。
function creatSS() { const id = SpreadsheetApp.create("新規SS").getId(); const file = DriveApp.getFileById(id); console.log(file.getName()); }
fileSSに新規スプレッドシートのFileオブジェクトが格納されます。
実行をすると、ルートフォルダに「新規SS」が作成された上で、ログ出力に以下のように「新規SS」と取得したFileオブジェクト名が表示されます。
GoogleドライブのフォルダをIDで取得する
次いで、今度は移動先となるフォルダをIDで指定して取得してみましょう。
GoogleドライブのフォルダをIDで指定して取得する場合は、DriveApp.getFolderByIdメソッドを使います。
これでGoogleドライブの特定のフォルダを変数として取得することができます。
フォルダのIDはGoogleドライブで目的のフォルダに移動した際のURLの
{フォルダID}の部分です。
以下画像もご参考ください。
スクリプトを以下のように修正をして実行をしてみましょう。
const FOLDER_ID = '{フォルダID}'; function creatSS() { const id = SpreadsheetApp.create("新規SS").getId(); const file = DriveApp.getFileById(id); const folder = DriveApp.getFolderById(FOLDER_ID); console.log(folder.getName()); }
実行をすると、ルートフォルダに「新規SS」が作成され、ログ出力にはフォルダ名「スプレッドシート作成・移動」が表示されるはずです。
これで、ファイルを目的のフォルダに移動する準備が整います。
まとめ
Google Apps ScriptでGoogleドライブのフォルダ、ファイルをID指定で取得する方法についてお伝えしました。
Googleドライブの世界ではIDは一意に決まりますので、パッと指定して取得できるのでとっても便利です。
getFileByIdメソッド、getFolderByIdメソッド合わせて覚えて頂ければと思います。
次回は、ファイルの移動・削除についてお伝えしていきます。
どうぞお楽しみに!