【コピペで使える】GASでスプレッドシートのファイル名を取得する

how_to_get_file_name_from_spreadsheet
URLをコピーする
URLをコピーしました!

今回は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()メソッドがどのような挙動をするかを確認して業務効率化につなげていただければと思います。

 
how_to_get_file_name_from_spreadsheet

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初心者でもわかるGoogle Apps Script活用のススメの管理人。
業務でラクをするという邪な目的のためにプログラムを独学で勉強し始め、初心者向けのGoogle Apps Scriptの使い方サイトを運営するに至る。
ラクをするためにはどんな苦労も厭わないという考えから、手っ取り早くスキルアップするためにCrowdWorksやLancersなどで仕事を受注し始め、過去にはTopClass PRO Crowd workerに認定された経験を持つ。
現在では、業務効率化システムの開発を行う会社の代表を務める。

コメント

コメントする

目次
トップへ
目次
閉じる