今回はGoogle Apps Scriptを使ってスプレッドシートのファイル名を取得するメソッドを紹介したいと思います。getName()というメソッドを使いますが、読んで字のごとく、対象となるファイルの名前を取得してくるためのメソッドとなります。今回はこのメソッドの使い方をサンプルコードを使ってご紹介します。
活用方法は様々ありますが、ファイル名によって処理を分岐させたり、ファイル名を取得して一覧表を作成するなど、日々の業務の利便性を高めてくれるものだと思います。
スプレッドシートのファイル名を取得する
コピペで使えるサンプルコードを参照したい方はこちらをクリックすればサンプルコードまでジャンプできますので、手っ取り早くコードを確認したい方はクリックしてください。
まずは、今回のgetNameの挙動が確認できるようにウェブアプリを用意しました。こちらをクリックしてウェブアプリにアクセスしてみてください。
※ブラウザで複数のGoogleアカウントにログインしている場合はうまくアクセスできない場合があります。その場合はシークレットモードでアクセスするようにしてください。
サンプルでスプレッドシートファイルを用意しましたので、合わせてご確認ください。ウェブアプリでは、このサンプルスプレットシートファイルのファイル名を取得してアプリのダイアログで結果を出力します
DriveAppやDocumentAppなど他のクラスでもgetNameはありますが、利用方法としてはほとんど同じ使い方となります。対象となるファイルを取得して、そのファイルに対してgetNameを利用することによって対象のファイル名を取得できます。
対象ファイルのファイル名を取得するサンプルコード
//スプレッドシートのファイル名を取得するサンプルコード function sampleCodeForGetSpreadsheetName() { let ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1bNylN43j3wx80Vu1Vp5rYzeXacLQmBojZqBFfnFQ6AM/"); let fileName = ss.getName(); let msg = "対象のスプレットシートのファイル名は『" + fileName + "』です。"; console.log(msg); return msg; }
ウェブアプリ用のスクリプトも参考にしたい方はこちらをクリックすればアクセスできます。
サンプルスクリプトでは、1つのファイルの名前だけを取得しましたが、管理表のようなスプレッドシートにスプレッドシートURLを一覧が入力されているようなファイルがある場合は、そのURLから対象のファイル名を一括で取得することができたりします。
【参考】一括でファイル名を取得するサンプルコード
参考までに一括取得のサンプルコードも作成してみました。ウェブアプリからも実行可能です。
//スプレッドシートURLから一括でファイル名を取得するサンプルコード function sampleCodeForGetSpreadsheetNames() { let ss = SpreadsheetApp.openByUrl(SHEET_ID); let sheet = ss.getSheetByName("シート1"); let data = sheet.getDataRange().getValues(); let i, url, targetSS, targetFileName; let length = data.length; let array = []; for (i = 1; i < length; i++) { url = data[i][0]; targetSS = SpreadsheetApp.openByUrl(url); targetFileName = targetSS.getName(); array.push([targetFileName]); } sheet.getRange(2, 2, array.length, 1).setValues(array); return "ファイル名の一括取得が完了しました。"; } //一括取得したファイル名を削除する function deleteFileNames() { let ss = SpreadsheetApp.openByUrl(SHEET_ID); let sheet = ss.getSheetByName("シート1"); let lastRow = sheet.getLastRow() - 1; sheet.getRange(2, 2, lastRow, 1).clearContent(); return "ファイル名の削除しました。"; }
ウェブアプリにも一括処理ができるようにしてありますので、サンプルスプレッドシートを参考に挙動を確認してもらえればと思います。
まとめ
今回は、SpreadsheetApp.getName()メソッドを使って、ファイル名を取得する方法をご紹介しました。ファイル名によって処理を分岐させたり、Googleドライブに保存しているファイル数が増えてきた際に、管理表を作成などの場合に作業を効率化してくれるといった使い方ができると思います。サンプルコードやウェブアプリを利用して、getName()メソッドがどのような挙動をするかを確認して業務効率化につなげていただければと思います。