スプレッド シート gas。 複数のスプレッドシートを扱う|Google Apps Script入門

【GAS】スプレッドシートの保護機能まとめ【サンプルソース付】

スプレッド シート gas

getActive. getActiveSheet ; SpreadSheetクラスとSheetクラスがありますが、SpreadSheetがシートファイル全体 エクセルでいうところの. xlsxファイル を指し、Sheetクラスがシートファイル内の各シートを指します。 2回以上呼ぶならメモ化で高速化 複雑な処理を書き始めると、上記コードを何度も呼ぶことになりますが、2回以上呼ぶようであれば、メモ化を行うことでAPIへのアクセス回数を減らしましょう。 google spreadsheetのスクリプトで高速化の基本は、APIアクセスを減らすことです。 getActive. getSheetByName ' メインシート ' ; return getMainSheet. getDataRange. getRange rowIndex , colStartIndex , rowNum , sheet. getLastColumn. getSheetValues rowIndex, colStartIndex, rowNum, sheet. getLastColumn ; シート全体のデータ探索処理は、JS側でチェックするほうが速い 案件管理などの場合、完了しているタスクに対して色を塗る等の処理が必要となります。 このような、シートの各行の値に応じて何か処理をしたい場合は、各行のデータをgetRangeで取得し各行の状態に応じて色を塗ったりしてもよいですが、APIを多く叩くことになるため処理時間が長くなります。 先にシート全体のデータを取得し、js側で各行のデータをループさせ、処理をする行の位置をマークした後、マークした行群に対して色を塗るAPIを叩く処理のほうがよいでしょう。 getDataRange. getRange finishedRowIndexes [ i ], 1 , 1 , sheet. getLastColumn. RangeクラスのsetBackgroundColorでrangeで指定された範囲のセルを塗れます。 getRange 1 , 1 , 1 , sheet. getLastColumn. getRange 2 , 1 , 3 , sheet. getLastColumn. setBackgroundColor ' eeeeee ' ; 同じ色が近接セルにあるならまとめて塗ると、APIを叩く回数を減らせます。 ただし、1行飛ばし、みたいなRange指定はできません。 また、色塗りに関連して、罫線の太さを設定できるかと思ったのですが、太い罫線は現時点では引けないようです。 シート間の行移動 コピー ・同期 今回、案件管理のやり方として、以下のようなシート配置で行いました。 マスターシートに案件の全情報を置く。 案件は、マスターシートに1案件が1行として保存されており、案件ID, 担当者、ステータスがある。 各ユーザーのシートにユーザーが担当する案件を、マスターシートからコピーする。 このような方法にしたため、マスターシートから、各ユーザーのシートに案件行をコピーする必要がありました。 この場合は空白行を追加した後、その領域にデータをsetValuesすることで実現できます。 getActive. insertRowsBefore 2 , copyData. getRange 2 , 1 , copyData. length , userSheet. getLastColumn ; range. setValues copyData ; シート間の情報の同期 各ユーザーのシートで、例えば案件のステータスを変更したことを、マスターシートにも反映したい、という場合があります。 その場合は、セル編集時のトリガで呼び出される関数onEditの引数で、シートと変更したセルの位置を受けとれるので、それに応じて処理をするような形で実現できます。 range. source. getActive. getSheetValues editedRowIndex , 1 , 1 , sheet. getActive. getLastColumn ; range. カスタムメニュー Spreadsheetのgoogle app scriptでは、シートのメニューUI内にカスタムメニューを配置できます。 私の場合は、案件の追加などをマスターシートに対して処理した後に、各ユーザーのシートに案件を分配する処理を実行できるリンクにしています。 このような、ユーザーの特定の行動の後に実施したいタスクについては、カスタムメニューに入れると良いと思います。 次に、避けて通れないエディタやデバッグなどの開発スタイルについてです。 そのため、お気に入りのエディタで編集したコードは、コピーした上でspreadsheetのスクリプトエディタを開き、貼付けることになります。 ただし、gasのスクリプトエディタは、基本的には2スペースインデントです。 もとのコードが4スペースインデントだと、貼付けたあとちょっと手直しする場合に残念な気持ちになります。 なので、お気に入りのエディタで開発される場合も、2スペースインデントをお勧めします。 デバッグ onOpen等のトリガのコールバック関数のデバッグは、引数を取らないため、再生ボタンを選べば簡単に実行できます。 しかし、onEdit等の、コールバック関数に渡す引数に、特定の値を渡すようなトリガの場合、デバッグ機能を有効活用できません。 onEdit等のトリガのコールバック関数内は、できるだけサブの関数に分けて処理を進めるのがよいかと思います。 終わりに いかがでしたでしょうか? 1月ほどしか触っていないので、間違いのご指摘、もっとこうした方が速い!というご意見歓迎です! よろしくお願いします。

次の

GASでSpreadsheetを操作する自分的ベストプラクティス

スプレッド シート gas

Google Apps Script スプレッドシート 基礎 リファレンス 当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。 若干、文言がおかしい可能性がありますが、あらかじめご了承ください。 スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。 まずは実際に動かしてみることをオススメします。 マクロの登録方法は以下を参照いただければと思います。 GASの本はまだまだ少ないですね。 基礎レベルであれば、以下の参考書が初心者にはベストの本です。 基本的な仕様やよく使われる機能の設定方法がまとまっています。 セル範囲クラス[Range]の保護 セル範囲の保護メソッドです。 セル範囲保護[protect ] protect 権限を持つユーザー以外は編集範囲から範囲を保護できるオブジェクトを作成します。 スクリプトが実際に範囲のエディタのリストを変更するまで(Protection. removeEditor(emailAddress)、Protection. removeEditor(user)、Protection. removeEditors(emailAddresses)、Protection. addEditor(emailAddress)、Protection. addEditor(user)、 Protection. addEditors(emailAddresses)、またはProtection. setDomainEdit(編集可能)に新しい値を設定すると、権限はスプレッドシート自体の権限を反映するため、事実上、範囲は保護されないままになります。 範囲がすでに保護されている場合、このメソッドは既存の範囲と重なる新しい保護範囲を作成します。 セルが複数の保護された範囲によって保護されていて、そのいずれかが特定のユーザーによるセルの編集を妨げる場合、そのユーザーはそのセルを編集することを許可されません。 protect. getEffectiveUser ; protection. addEditor me ; protection. removeEditors protection. getEditors ; if protection. シートクラス[Sheet]の保護 シートの保護メソッドです。 シート保護[protect ] protect 権限を持つユーザー以外はシートを編集できないように保護できるオブジェクトを作成します。 スクリプトが実際にシートのエディタのリストを変更するまで(Protection. removeEditor(emailAddress)、Protection. removeEditor(user)、Protection. removeEditors(emailAddresses)、Protection. addEditor(emailAddress)、Protection. addEditor(user)、 Protection. addEditors(emailAddresses)、またはProtection. setDomainEdit(編集可能)に新しい値を設定すると、パーミッションはスプレッドシート自体のパーミッションを反映します。 つまり、シートは無保護のままになります。 シートがすでに保護されている場合、このメソッドは既存の保護設定を表すオブジェクトを返します。 保護シートには、保護されていない領域が含まれる場合があります。 protect. getEffectiveUser ; protection. addEditor me ; protection. removeEditors protection. getEditors ; if protection. シート保護範囲取得[getProtections 保護タイプ ] getProtections type シート内のすべての保護された範囲を表すオブジェクトの配列、またはシート自体の保護を表す単一要素の配列を取得します。 getProtections SpreadsheetApp. ProtectionType. getProtections SpreadsheetApp. ProtectionType. SpreadsheetApp. ProtectionType. RANGEまたはSpreadsheetApp. ProtectionType. SHEETのいずれかです。 Return Protection[] - シート内のすべての保護範囲を表すオブジェクトの配列、またはシート自体の保護を表す単一要素の配列。 スプレッドシートクラス[Spreadsheet]の保護 スプレッドシートの保護メソッドです。 シート保護範囲取得[getProtections 保護タイプ ] getProtections type スプレッドシート内のすべての保護された範囲またはシートを表すオブジェクトの配列を取得します。 getProtections SpreadsheetApp. ProtectionType. getProtections SpreadsheetApp. ProtectionType. SpreadsheetApp. ProtectionType. RANGEまたはSpreadsheetApp. ProtectionType. SHEETのいずれかです。 Return Protection[] - スプレッドシート内のすべての保護された範囲またはシートを表すオブジェクトの配列。 保護クラス[Protection] 保護クラスメソッドです。 保護された範囲とシートにアクセスして変更します。 保護範囲は、セルの静的範囲または名前付き範囲のいずれかを保護できます。 保護シートには、保護されていない領域が含まれる場合があります。 古いバージョンのGoogleスプレッドシートで作成したスプレッドシートの場合は、代わりにPageProtectionクラスを使用してください。 protect. getEffectiveUser ; protection. addEditor me ; protection. removeEditors protection. getEditors ; if protection. getProtections SpreadsheetApp. ProtectionType. protect. getEffectiveUser ; protection. addEditor me ; protection. removeEditors protection. getEditors ; if protection. addEditor user Protection 保護されたシートまたは範囲のエディタのリストに指定のユーザーを追加します。 addEditors emailAddresses Protection 保護されたシートまたは範囲のエディタのリストに、指定されたユーザーの配列を追加します。 canDomainEdit Boolean スプレッドシートを所有するドメイン内のすべてのユーザーが保護範囲またはシートを編集する権限を持っているかどうかを判断します。 canEdit Boolean ユーザーが保護範囲またはシートを編集する権限を持っているかどうかを決定します。 getDescription String 保護された範囲またはシートの説明を取得します。 getEditors User[] 保護された範囲またはシートのエディタのリストを取得します。 getProtectionType ProtectionType 保護領域の種類(RANGEまたはSHEET)を取得します。 getRange Range 保護されている範囲を取得します。 getRangeName String 名前付き範囲に関連付けられている場合は、保護範囲の名前を取得します。 getUnprotectedRanges Range[] 保護されたシート内の保護されていない範囲の配列を取得します。 isWarningOnly Boolean 保護領域が「警告ベース」の保護を使用しているかどうかを確認します。 remove void 範囲またはシートの保護を解除します。 removeEditor emailAddress Protection 保護されたシートまたは範囲のエディタのリストから特定のユーザーを削除します。 removeEditor user Protection 保護されたシートまたは範囲のエディタのリストから特定のユーザーを削除します。 removeEditors emailAddresses Protection 保護されたシートまたは範囲のエディタのリストから、指定されたユーザーの配列を削除します。 setDescription description Protection 保護範囲またはシートの説明を設定します。 setDomainEdit editable Protection スプレッドシートを所有するドメイン内のすべてのユーザーが保護範囲またはシートを編集する権限を持っているかどうかを設定します。 setNamedRange namedRange Protection 保護されている範囲を既存の名前付き範囲と関連付けます。 setRange range Protection 保護されている範囲を調整します。 setRangeName rangeName Protection 保護されている範囲を既存の名前付き範囲と関連付けます。 setUnprotectedRanges ranges Protection 保護シート内の指定された範囲の配列の保護を解除します。 setWarningOnly warningOnly Protection この保護範囲が「警告ベース」の保護を使用しているかどうかを設定します。 保護範囲シートエディタリスト指定ユーザ追加1[addEditor メールアドレス ] addEditor emailAddress 保護されたシートまたは範囲のエディタのリストに指定のユーザーを追加します。 この方法では、スプレッドシート自体を編集する権限がユーザーに自動的に付与されることはありません。 それに加えて、Spreadsheet. addEditor(emailAddress)を呼び出します。 Parameters 名前 タイプ 説明 emailAddress String 追加するユーザーのEメールアドレス。 Return Protection - 連鎖用の保護設定を表すオブジェクト。 保護範囲シートエディタリスト指定ユーザ追加2[addEditor ユーザ ] addEditor user 保護されたシートまたは範囲のエディタのリストに指定のユーザーを追加します。 この方法では、スプレッドシート自体を編集する権限がユーザーに自動的に付与されることはありません。 それに加えて、Spreadsheet. addEditor(user)を呼び出します。 Parameters 名前 タイプ 説明 user User 追加するユーザーの表現。 Return Protection - 連鎖用の保護設定を表すオブジェクト。 保護範囲シートエディタリスト指定ユーザ複数追加[addEditors メールアドレス's ] addEditors emailAddresses 保護されたシートまたは範囲のエディタのリストに、指定されたユーザーの配列を追加します。 この方法では、スプレッドシート自体を編集する権限がユーザーに自動的に付与されることはありません。 それに加えて、Spreadsheet. addEditors(emailAddresses)を呼び出します。 Parameters 名前 タイプ 説明 emailAddresses String[] 追加するユーザーのEメールアドレスの配列。 Return Protection - 連鎖用の保護設定を表すオブジェクト。 ユーザ保護編集権限確認[canDomainEdit ] canDomainEdit スプレッドシートを所有するドメイン内のすべてのユーザーが保護範囲またはシートを編集する権限を持っているかどうかを判断します。 ユーザーが保護範囲またはシートを編集する権限を持っていない場合は、例外をスローします。 Return Boolean - スプレッドシートを所有するドメイン内のすべてのユーザーが保護範囲またはシートを編集する権限を持っている場合はtrue、それ以外の場合はfalse。 そうでない場合はfalse。 ユーザ保護編集可能[canEdit ] canEdit ユーザーが保護範囲またはシートを編集する権限を持っているかどうかを決定します。 スプレッドシートの所有者は、常に保護範囲とシートを編集できます。 getProtections SpreadsheetApp. ProtectionType. そうでない場合はfalse。 保護範囲シート説明取得[getDescription ] getDescription 保護された範囲またはシートの説明を取得します。 説明が設定されていない場合、このメソッドは空の文字列を返します。 Return String - 保護された範囲またはシートの説明、または説明が設定されていない場合は空の文字列。 保護範囲シートエディタリスト取得[getEditors ] getEditors 保護された範囲またはシートのエディタのリストを取得します。 ユーザーが保護範囲またはシートを編集する権限を持っていない場合は、例外をスローします。 protect. getEffectiveUser ; protection. addEditor me ; protection. removeEditors protection. getEditors ; if protection. 保護領域タイプ取得[getProtectionType ] getProtectionType 保護領域の種類(RANGEまたはSHEET)を取得します。 Return ProtectionType - 保護領域のタイプ、RANGEまたはSHEET。 保護範囲取得[getRange ] getRange 保護されている範囲を取得します。 保護が範囲ではなくシートに適用される場合、このメソッドはシート全体にわたる範囲を返します。 Return 保護されている範囲。 保護されていない範囲取得[getUnprotectedRanges ] getUnprotectedRanges 保護されたシート内の保護されていない範囲の配列を取得します。 Protectionオブジェクトが保護シートではなく保護範囲に対応する場合、このメソッドは空の配列を返します。 保護されていない範囲を変更するには、setUnprotectedRanges(範囲)を使用して範囲の新しい配列を設定します。 シート全体を再保護するには、空の配列を設定してください。 getUnprotectedRanges ; unprotected. push sheet. getRange 'E2:F5' ; protection. 警告保護使用確認[isWarningOnly ] isWarningOnly 保護領域が「警告ベース」の保護を使用しているかどうかを確認します。 警告ベースの保護とは、編集を除いてすべてのユーザーが領域内のデータを編集できることを意味し、編集を確認するようにユーザーに求めます。 デフォルトでは、保護範囲またはシートは警告ベースではありません。 警告状態に変更するには、setWarningOnly(warningOnly)を使用してください。 Return Boolean - 保護された範囲またはシートが警告ベースの保護のみを使用している場合はtrueです。 保護範囲シート削除[remove ] remove 範囲またはシートの保護を解除します。 getProtections SpreadsheetApp. ProtectionType. getProtections SpreadsheetApp. ProtectionType. ユーザーが編集権限を持つGoogleグループのメンバーである場合、またはドメイン内のすべてのユーザーが編集権限を持つ場合でも、ユーザーは保護された領域を編集できます。 スプレッドシートの所有者も現在のユーザーも削除できません。 Parameters 名前 タイプ 説明 emailAddress String 削除するユーザーのEメールアドレス。 Return Protection - 連鎖用の保護設定を表すオブジェクト。 保護範囲シートエディタリスト指定ユーザ削除2[removeEditor ユーザ ] removeEditor user 保護されたシートまたは範囲のエディタのリストから特定のユーザーを削除します。 ユーザーが編集権限を持つGoogleグループのメンバーである場合、またはドメイン内のすべてのユーザーが編集権限を持つ場合でも、ユーザーは保護された領域を編集できます。 スプレッドシートの所有者も現在のユーザーも削除できません。 Parameters 名前 タイプ 説明 user User 削除するユーザーの表現。 Return Protection - 連鎖用の保護設定を表すオブジェクト。 保護範囲シートエディタリスト特定ユーザー複数削除[removeEditors メールアドレス ] removeEditors emailAddresses 保護されたシートまたは範囲のエディタのリストから、指定されたユーザーの配列を削除します。 いずれかのユーザーが編集権限を持つGoogleグループのメンバーである場合、またはドメイン内のすべてのユーザーが編集権限を持つ場合でも、それらのユーザーは保護領域を編集できます。 スプレッドシートの所有者も現在のユーザーも削除できません。 protect. getEffectiveUser ; protection. addEditor me ; protection. removeEditors protection. getEditors ; if protection. Return Protection - 連鎖用の保護設定を表すオブジェクト。 保護範囲シート説明設定[setDescription 説明 ] setDescription description 保護範囲またはシートの説明を設定します。 Parameters 名前 タイプ 説明 description String 保護された範囲またはシートの説明。 Return Protection - 連鎖用の保護設定を表すオブジェクト。 ユーザ保護編集権限設定[setDomainEdit 編集可否 ] setDomainEdit editable スプレッドシートを所有するドメイン内のすべてのユーザーが保護範囲またはシートを編集する権限を持っているかどうかを設定します。 明示的な編集権限を持つユーザーは、この設定に関係なく保護領域を編集できます。 スプレッドシートがG Suiteドメインに属していない場合(つまり、gmail. comアカウントによって所有されている場合)、例外をスローします。 Parameters 名前 タイプ 説明 editable Boolean スプレッドシートを所有するドメイン内のすべてのユーザーが保護範囲またはシートを編集する権限を持つ必要がある場合、trueです。 そうでない場合はfalse。 Return Protection - 連鎖用の保護設定を表すオブジェクト。 名前付き範囲の保護範囲設定[setNamedRange 名前付き範囲 ] setNamedRange namedRange 保護されている範囲を既存の名前付き範囲と関連付けます。 名前付き範囲が現在の保護範囲とは異なる領域をカバーする場合、このメソッドは代わりに名前付き範囲をカバーするように保護を移動します。 名前付き範囲は、現在の保護範囲と同じシート上になければなりません。 スクリプトはこのメソッドを明示的に呼び出して、保護範囲を名前付き範囲に関連付ける必要があります。 setRangeName(rangeName)を呼び出さずにRange. protect()を呼び出して、名前付き範囲であるRangeから保護を作成するだけでは、それらを関連付けるには不十分です。 ただし、Google Sheets UIで名前付き範囲から保護範囲を作成すると、それらは自動的に関連付けられます。 Parameters 名前 タイプ 説明 namedRange NamedRange 保護範囲に関連付ける既存の名前付き範囲。 Return Protection - 連鎖用の保護設定を表すオブジェクト。 保護範囲設定[setRange セル範囲 ] setRange range 保護されている範囲を調整します。 指定された範囲が現在の保護されている範囲と異なる領域をカバーしている場合、このメソッドは代わりに新しい範囲をカバーするように保護を移動します。 Parameters 名前 タイプ 説明 range Range 編集から保護するための新しい範囲。 Return Protection - 連鎖用の保護設定を表すオブジェクト。 名前付き範囲保護の関連付け[setRangeName 名前付き範囲名 ] setRangeName rangeName 保護されている範囲を既存の名前付き範囲と関連付けます。 名前付き範囲が現在の保護範囲とは異なる領域をカバーする場合、このメソッドは代わりに名前付き範囲をカバーするように保護を移動します。 名前付き範囲は、現在の保護範囲と同じシート上になければなりません。 スクリプトはこのメソッドを明示的に呼び出して、保護範囲を名前付き範囲に関連付ける必要があります。 setRangeName(rangeName)を呼び出さずにRange. protect()を呼び出して、名前付き範囲であるRangeから保護を作成するだけでは、それらを関連付けるには不十分です。 ただし、Google Sheets UIで名前付き範囲から保護範囲を作成すると、それらは自動的に関連付けられます。 protect ; ss. protection. Logger. log protection. Return Protection - 連鎖用の保護設定を表すオブジェクト。 指定範囲の保護解除[setUnprotectedRanges 範囲's ] setUnprotectedRanges ranges 保護シート内の指定された範囲の配列の保護を解除します。 Protectionオブジェクトが保護シートではなく保護範囲に対応する場合、またはいずれかの範囲が保護シートにない場合は、例外をスローします。 保護されていない範囲を変更するには、範囲の新しい配列を設定します。 シート全体を再保護するには、空の配列を設定してください。 protect. getRange 'B2:C5' ; protection. getEffectiveUser ; protection. addEditor me ; protection. removeEditors protection. getEditors ; if protection. Return Protection - 連鎖用の保護設定を表すオブジェクト。 警告保護設定[setWarningOnly 警告設定有無 ] setWarningOnly warningOnly この保護範囲が「警告ベース」の保護を使用しているかどうかを設定します。 警告ベースの保護とは、編集を除いてすべてのユーザーが領域内のデータを編集できることを意味し、編集を確認するようにユーザーに求めます。 デフォルトでは、保護範囲またはシートは警告ベースではありません。 警告状態を確認するには、isWarningOnly()を使用してください。 Parameters 名前 タイプ 説明 warningOnly Boolean Return Protection - 連鎖用の保護設定を表すオブジェクト。 保護タイプ列挙型[ProtectionType] 保護タイプの列挙型です。 Enum ProtectionType 編集から保護することができるスプレッドシートの部分を表す列挙体。 Properties プロパティ タイプ 説明 RANGE Enum 範囲に対する保護。 SHEET Enum シートの保護 最後に GAS保護機能のまとめをご紹介させていただきました。 必要に応じて、有益な情報でさらに更新していきたいと思います。 プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。 実際に手を動かして アウトプットしまくるのが一番の近道だと思います。 実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。 自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。 GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。 どの操作からどのメソッドが呼ばれるのかイメージしてください。

次の

GASでSpreadsheetを操作する自分的ベストプラクティス

スプレッド シート gas

本連載「」では、Googleが提供する「」(GAS)のプログラミングで、「Google Apps」を操作する方法を「Google Sheets」()を中心に解説していく。 初回の「」では、Google Apps Scriptやスプリプトエディタの概要、スプレッドシートを表示し、Browser. msgBoxメソッドでメッセージを表示する手順などについて解説した。 今回から、Google Apps Scriptのスプレッドシート用のオブジェクトやメソッドの使い方を詳しく見ていく。 まずは、スプレッドシートのセルの値、行数や列数を取得したり、セルに値を入力したりするなど、基本操作の仕方を解説する。 Google Sheets(スプレッドシート)のオブジェクト Google Apps Scriptでは、Google Sheets(スプレッドシート)は「SpreadsheetApp」オブジェクトとして用意されていて、下記のように複数のオブジェクトで構成されている。 スプレッドシートアプリケーション:アプリケーションの本体。 「」オブジェクトとして用意されている• スプレッドシート:スプレッドシートのドキュメント本体。 「」オブジェクトとして用意されている• シート:各シートは「」オブジェクトとして扱う• レンジ:「セルの範囲」を示すもので、「」オブジェクトとして用意されている Excel VBAでは、それぞれ、Application、Workbook、Worksheet、Rangeオブジェクトが同様のものといっていいだろう。 getRange {行番号},{列番号},{行数},{列数} {セルの番地}には、Excel同様「A1」「B1」「C3」などというふうに、列を表すアルファベットと行を表す数値を組み合わせて使う。 {セルの番地(始まり)}:{セルの番地(終わり)}は例えば「A1:B1」と指定することで複数のセルを指定することができる。 {行番号}{列番号}で指定する方法は、Excelの「」と同じだ。 なおExcel VBAでは「」というプロパティで「R1C1参照形式」を使うが、Google Apps ScriptではgetRangeメソッドのみで、「A1形式」「R1C1参照形式」どちらでも使える。 さらに、Google Apps Scriptでは{行数}や{列数}をオプションで指定できる。 {行数}や{列数}は省略した場合はデフォルトで「1」が指定される。

次の