みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
Google Apps Scriptでツールを作成する際に、新規のスプレッドシートを作成したい局面もたくさんあると思います。
例えば、スクリプトを仕込んであるスプレッドシートと同じフォルダとか、別の指定したフォルダとかに保存したいというというニーズは当然あります。
ただ、SpreadsheetApp.createメソッドで新規スプレッドシートを作成すると、常にルートフォルダにファイルができてしまい、ルートフォルダがぐちゃぐちゃに…てなことも。
ということで、Google Apps Scriptで新規スプレッドシートを指定のフォルダに作成する方法について、シリーズで紹介したいと思います。
まず今回は、基本の基本から。
Google Apps Scriptで新規スプレッドシートを作成する方法、またそのIDを取得する方法です。
では行ってみましょう!
createメソッドで新規スプレッドシートを作成する
ではまず手始めに、新規スプレッドシートを作成することから始めましょう。
新規スプレッドシートを作成する場合は、SpreadsheetApp.createメソッドを使います。
書き方はこうです。
簡単ですね。
例えば、こんなスクリプトです。
function creatSS() { SpreadsheetApp.create("新規SS"); }
簡単ですね。
これを実行すると、このようにマイフォルダ直下つまりルートフォルダに新規スプレッドシートが作成されました。
スプレッドシートを開いてみましょう。
createメソッドで作成されたスプレッドシートはこのようにまっさらな状態です。
作成したスプレッドシートを取得する
このスプレッドシートのセルに値を書き込むこともできますが、そのためにはこの作成したスプレッドシートを取得する必要がありますよね。
まず一つの方法としては、createメソッドの返り値を使う方法があります。
例えば、このようなスクリプトですね。
function creatSS() { const ss = SpreadsheetApp.create("新規SS"); console.log(ss.getName()); }
mySSという変数に作成したスプレッドシートを取得しています。
このスクリプトを実行して Ctrl + Enter でログ出力を確認すると、以下のように「新規SS」と表示されます。
IDを使って作成したスプレッドシートを取得する
別の方法として、スプレッドシートのIDを使う方法を紹介します。
getIdメソッドでスプレッドシートのIDを取得する
スプレッドシートのIDを取得するには、Spreadsheetオブジェクトに対するgetIdメソッドを使います。
書き方はこちら。
Google App Scriptのファイルには全てIDが振られていますので、IDを使ってアクセスできることを知っておくと良いですよ。
openByIdメソッドでIDによりスプレッドシートを取得する
また、IDを指定してスプレッドシートを取得するには、SpreadsheetApp.openByIdメソッドを使います。取得と言っているのでget~のような気もしますが、open~ですので注意を…
書き方はこうです。
これらのメソッドをテストするスクリプトは例えばこちらです。
function creatSS() { const id = SpreadsheetApp.create("新規SS").getId(); console.log(SpreadsheetApp.openById(id).getName()); }
こちらのスクリプトも実行すると、「新規SS」というログ出力がなされるはずです。
まとめ
Google Apps Scriptで新規スプレッドシートを作成する方法についてお伝えしました。
また、作成したスプレッドシートを取得する方法として、二つお伝えしました。
IDを使うパターンは、なんだか回りくどいように見えるかも知れませんが、本シリーズのゴールでいうフォルダを指定して保存する場合には必要となりますので、覚えておいてくださいね。
では、次回は視点をGoogleドライブ、つまりDriveAppに移して、ファイルやフォルダをIDで取得する方法についてお伝えしますね。
どうぞお楽しみに!