1
0

[Google Sheets API] 名前付き範囲を追加・更新・削除する

Last updated at Posted at 2024-03-03

Google Sheets API v4(Java)を使用して、
スプレットシートに名前付き範囲を追加・更新・削除する方法
についてご紹介します。

名前付き範囲とは
Google スプレッドシート内の範囲に名前を付けることができます。
名前をつけることで範囲を見つけやすくしたり、数式を簡単に作成することができます。
例えば、「A1:B2」の範囲に「test」という名前をつけると、
「=SUM(A1:B2)」を「=SUM(test)」と入力することができます。

設定した名前付き範囲は、
スプレットシートのメニュー 「データ ⇨ 名前付き範囲」
から確認することができます。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Google Sheets API] Google Sheets API v4をJavaで操作する
を参照ください。

例:requests.add(moveDimension(sheetId)); //実行したいリクエストのMethodを指定

その他のGoogle Sheets APIは、下記の記事を参照ください。
⧉[Google Sheets API] JavaでスプレットシートのメニューとAPIを関連づけてみた

No 目次
1 名前付き範囲の追加
2 名前付き範囲の更新
3 名前付き範囲の削除

1. 名前付き範囲の追加

指定したシートに名前付き範囲を追加します。

名前付き範囲にはIDを付与することができます。IDを指定しない場合は、
自動で割り振られます。

サンプル コード

public Request addNamedRange(Integer sheetId) {
    Request request = new Request();

    GridRange grid = new GridRange();
    grid.setSheetId(sheetId);     //設定するシートID
    grid.setStartRowIndex(0);     //開始行(0スタート)
    grid.setEndRowIndex(6);       //終了行(0スタート)
    grid.setStartColumnIndex(12); //開始列(0スタート)
    grid.setEndColumnIndex(16);   //終了列(0スタート)

    NamedRange range = new NamedRange();
    range.setName("test");            //名前の設定
    range.setNamedRangeId("test_id"); //ID(省略すると自動で割り振られる)の設定
    range.setRange(grid);             //範囲の設定

    AddNamedRangeRequest r = new AddNamedRangeRequest();
    r.setNamedRange(range);

    request.setAddNamedRange(r);
    return request;
}

実行結果
メニュー : データ ⇨ 名前付き範囲
を開くと、名前付き範囲が追加されてるのがわかります。

2. 名前付き範囲の更新

指定したシートの定義された名前付き範囲の情報を更新します。
更新したいIDを指定し、名前か範囲の一方を更新するか、両方を更新するかを
UpdateNamedRangeRequestのsetFieldsで指定します。
setFieldsの指定がない場合は更新されませんのでご注意ください。

サンプル コード

public Request updateNamedRange(Integer sheetId) {
    Request request = new Request();

    GridRange grid = new GridRange();
    grid.setSheetId(sheetId);     //設定するシートID
    grid.setStartRowIndex(10);    //開始行(0スタート)
    grid.setEndRowIndex(20);      //終了行(0スタート)
    grid.setStartColumnIndex(12); //開始列(0スタート)
    grid.setEndColumnIndex(16);   //終了列(0スタート)

    NamedRange range = new NamedRange();
    range.setName("test_new");        //名前
    range.setNamedRangeId("test_id"); //ID
    range.setRange(grid);             //範囲

    UpdateNamedRangeRequest r = new UpdateNamedRangeRequest();
    r.setFields("name,range");  //変更するフィールド(名前:name、範囲:range。両方ならname,range)
    r.setNamedRange(range);     //範囲の設定

    request.setUpdateNamedRange(r);
    return request;
}

実行結果
名前付き範囲の名前と範囲が更新されました。

3. 名前付き範囲の削除

指定したシートの定義された名前付き範囲を削除します。

サンプル コード

public Request deleteNamedRange(Integer sheetId) {
    Request request = new Request();

    DeleteNamedRangeRequest r = new DeleteNamedRangeRequest();
    r.setNamedRangeId("test_id"); //削除するID

    request.setDeleteNamedRange(r);
    return request;
}

実行結果
名前付き範囲が削除されました。

おしまい。。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0