Google Sheets API を使用すると、名前付き範囲または保護された範囲を作成、変更、削除できます。このページの例では、Sheets API を使用してスプレッドシートの一般的なオペレーションを行う方法を示します。
これらの例は、言語に依存しない HTTP リクエストの形式で示されています。Google API クライアント ライブラリを使用してさまざまな言語でバッチ更新を実装する方法については、スプレッドシートを更新するをご覧ください。
以下の例では、SPREADSHEET_ID
と SHEET_ID
というプレースホルダを使用して、これらの ID をどこで指定するかを示しています。スプレッドシート ID はスプレッドシートの URL で確認できます。シート ID は、spreadsheets.get
メソッドを使用して取得できます。範囲は A1 表記を使用して指定します。範囲の例は Sheet1!A1:D5 です。
また、プレースホルダ NAMED_RANGE_ID
と PROTECTED_RANGE_ID
は、名前付きで保護された範囲の ID を提供します。namedRangeId
と protectedRangeId
は、関連する範囲の更新または削除をリクエストするときに使用されます。ID は、名前付き範囲または保護された範囲を作成する Sheets API リクエストに対するレスポンスで返されます。既存の範囲の ID は、spreadsheets.get
メソッドで Spreadsheet
レスポンス本文から取得できます。
名前付き範囲または保護された範囲を追加する
次の spreadsheets.batchUpdate
コードサンプルは、2 つのリクエスト オブジェクトを使用する方法を示しています。1 つ目は、AddNamedRangeRequest
を使用して、範囲 A1:E3 に「Counts」という名前を割り当てます。2 つ目は、AddProtectedRangeRequest
を使用して、A4:E4 の範囲に警告レベルの保護を適用します。このレベルの保護では、範囲内のセルは編集できますが、変更する前に警告が表示されます。
これらのリクエストは、範囲 ID とプロパティを含む AddNamedRangeResponse
と AddProtectedRangeResponse
を返します。
リクエスト プロトコルは次のとおりです。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "addNamedRange": { "namedRange": { "name": "Counts", "range": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 3, "startColumnIndex": 0, "endColumnIndex": 5, }, } } }, { "addProtectedRange": { "protectedRange": { "range": { "sheetId":SHEET_ID
, "startRowIndex": 3, "endRowIndex": 4, "startColumnIndex": 0, "endColumnIndex": 5, }, "description": "Protecting total row", "warningOnly": true } } } ] }
名前付き範囲または保護された範囲を削除する
次の spreadsheets.batchUpdate
コードサンプルは、2 つのリクエスト オブジェクトを使用する方法を示しています。1 つ目は、DeleteNamedRangeRequest
を使用して、前の API 呼び出しの NAMED_RANGE_ID
を使用して既存の名前付き範囲を削除します。2 つ目は、DeleteProtectedRangeRequest
を使用して、前の API 呼び出しの PROTECTED_RANGE_ID
を使用して既存の範囲保護を削除します。
リクエスト プロトコルは次のとおりです。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "deleteNamedRange": { "namedRangeId": "NAMED_RANGE_ID
", } }, { "deleteProtectedRange": { "protectedRangeId":PROTECTED_RANGE_ID
, } } ] }
名前付き範囲または保護された範囲を更新する
次の spreadsheets.batchUpdate
コードサンプルは、2 つのリクエスト オブジェクトを使用する方法を示しています。最初の関数は、UpdateNamedRangeRequest
を使用して、前の API 呼び出しの NAMED_RANGE_ID
を使用して、既存の名前付き範囲の名前を「InitialCounts」に更新します。2 つ目は、UpdateProtectedRangeRequest
を使用して既存の保護範囲を更新し、同じ名前の範囲を保護するようにします。Editors
メソッドでは、リストに表示されているユーザーのみがセルを編集できます。このリクエストでは、以前の API 呼び出しの NAMED_RANGE_ID
と PROTECTED_RANGE_ID
を使用します。
リクエスト プロトコルは次のとおりです。
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "updateNamedRange": { "namedRange": { "namedRangeId":NAMED_RANGE_ID
, "name": "InitialCounts", }, "fields": "name", } }, { "updateProtectedRange": { "protectedRange": { "protectedRangeId":PROTECTED_RANGE_ID
, "namedRangeId":NAMED_RANGE_ID
, "warningOnly": false, "editors": { "users": [ "charlie@example.com", "sasha@example.com" ] } }, "fields": "namedRangeId,warningOnly,editors" } } ] }