【GAS】スプレッドシートの名前付き範囲機能まとめ【サンプルソース付】

快速ワーク
スポンサーリンク

GAS開発者向けにスプレッドシートの名前付き範囲機能をすべてまとめました。

セル範囲に名前を付けるとデータが何を表してるのかわかりやすくなったり、関数の設定やGASの実装も簡単になると思います。

要領よくスプレッドシートを扱えるようにしたい場合は、ぜひ使いこなしてみてください。

名前付き範囲に関するメソッドをすべて載せてます。少しでも参考になれば幸いです。


スポンサーリンク

Google Apps Script スプレッドシート 基礎 リファレンス

当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。

若干、文言がおかしい可能性がありますが、あらかじめご了承ください。

 

GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。

【GAS】スプレッドシート基本メソッドまとめ一覧【初心者入門】
GAS開発者向けにスプレッドシートの基本的なメソッドを一覧にまとめました。各機能ごとのクラス、メソッドごとのサンプルソース付ページへリンクする一覧です。初心者にとって、スプレッドシートの基本的な操作・機能単位のメソッドを知...

 

まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。

【GAS】Googleスプレッドシートでマクロの使い方入門【動画付】
Googleの「Google Apps Script」通称GAS。GoogleマップやGメールなど、いろんなGoogle関連のサービスと自由に連携できたり、独自のWebアプリを開発することもできる、いろんな可能性を秘めたワクワクの...

 

GASの本はまだまだ少ないですね。基礎レベルであれば、以下の参考書が初心者にはベストの本です。

基本的な仕様やよく使われる機能の設定方法がまとまっています。

※JavaScriptの知識が既にある程度ある人にとっては冗長かもしれません。


シートクラス[Sheet]の名前付き範囲

シートの名前付き範囲メソッドです。

名前付き範囲取得[getNamedRanges()]

getNamedRanges()
このシート内の名前付き範囲をすべて取得します。

function getNamedRangesSample() {
  // 以下のコードは最初の名前付き範囲の名前を記録します。
  var namedRanges = SpreadsheetApp.getActiveSheet().getNamedRanges();
  if (namedRanges.length > 1) {
    Logger.log(namedRanges[0].getName());
  }
}

Return
NamedRange[] - シート内のすべての名前付き範囲の配列。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | getNamedRanges()


スプレッドシートクラス[Spreadsheet]の名前付き範囲

スプレッドシートの名前付き範囲メソッドです。

名前付き範囲設定[setNamedRange(名前, 範囲)]

setNamedRange(name, range)
範囲を指定します。

function setNamedRangeSample() {
  // 以下のコードはアクティブなスプレッドシートに新しい名前付き範囲 "TaxRates"を作成します
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.setNamedRange("TaxRates", SpreadsheetApp.getActiveRange());
}
Parameters
名前タイプ説明
nameString範囲を付ける名前です。
rangeRange範囲指定。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | setNamedRange(name, range)

名前付き範囲取得[getNamedRanges()]

getNamedRanges()
このスプレッドシート内の名前付き範囲をすべて取得します。

function getNamedRangesSample() {
  // 以下のコードは最初の名前付き範囲の名前を記録します。
  var namedRanges = SpreadsheetApp.getActiveSpreadsheet().getNamedRanges();
  if (namedRanges.length > 1) {
    Logger.log(namedRanges[0].getName());
  }
}

Return
NamedRange[] - スプレッドシート内のすべての名前付き範囲の配列。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | getNamedRanges()

指定名前付き範囲取得[getRangeByName(名前)]

getRangeByName(name)
名前付き範囲を返します。指定された名前の範囲が見つからない場合はnullを返します。スプレッドシートの複数のシートで同じ範囲名を使用する場合は、追加の引用符を付けずにシート名を指定します。たとえば、getRangeByName('TaxRates')やgetRangeByName('Sheet Name!TaxRates')は指定できますが、getRangeByName('"Sheet Name"!TaxRates')は指定できません。

function getRangeByNameSample() {
  // アクティブなスプレッドシートの 'TaxRates'という名前の範囲の列数を記録します。
  var range = SpreadsheetApp.getActiveSpreadsheet().getRangeByName('TaxRates');
  if (range != null) {
    Logger.log(range.getNumColumns());
  }
}
Parameters
名前タイプ説明
nameString取得する範囲の名前。

Return
Range - 指定された名前のセルの範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | getRangeByName(name)

指定名前付き範囲削除[removeNamedRange(名前)]

removeNamedRange(name)
指定された名前の名前付き範囲を削除します。スプレッドシート内に指定された名前の範囲が見つからない場合は例外をスローします。

function removeNamedRangeSample() {
  // 以下のコードは新しい名前付き範囲 "foo"を作成し、それを削除します。
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.setNamedRange("foo", ss.getActiveRange());
  ss.removeNamedRange("foo");
}
Parameters
名前タイプ説明
nameString範囲名。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | removeNamedRange(name)




名前付き範囲クラス[NamedRange]

名前付き範囲クラスメソッドです。

スプレッドシートで名前付き範囲を作成、アクセス、および変更します。名前付き範囲は、関連する文字列エイリアスを持つ範囲です。それらはデータ>名前付き範囲...メニューの下のシートUIを通して見られて、編集されることができます。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class NamedRange

Methods
方法タイプ説明
getName()Stringこの名前付き範囲の名前を取得します。
getRange()Rangeこの名前付き範囲によって参照される範囲を取得します。
remove()voidこの名前付き範囲を削除します。
setName(name)NamedRange名前付き範囲の名前を設定または更新します。
setRange(range)NamedRangeこの名前付き範囲の範囲を設定または更新します。

名前付き範囲の名前取得[getName()]

getName()
この名前付き範囲の名前を取得します。

Return
String - この名前付き範囲の名前。

名前付き範囲の範囲取得[getRange()]

getRange()
この名前付き範囲によって参照される範囲を取得します。

Return
Range - この名前付き範囲に関連付けられているスプレッドシートの範囲。

名前付き範囲の削除[remove()]

remove()
この名前付き範囲を削除します。

function getNameSample() {
  // 以下のコードは、スプレッドシート内の名前付き範囲をすべて削除します。
  var namedRanges = SpreadsheetApp.getActive().getNamedRanges();
  for (var i = 0; i < namedRanges.length; i++) {
    namedRanges[i].remove();
  }
}

名前付き範囲の名前設定[setName(名前)]

setName(name)
名前付き範囲の名前を設定または更新します。

function setNameSample() {
  // 以下のコードは最初の名前付き範囲の名前を更新します。
  var namedRanges = SpreadsheetApp.getActiveSpreadsheet().getNamedRanges();
  if (namedRanges.length > 1) {
    namedRanges[0].setName("UpdatedNamedRange");
  }
}
Parameters
名前タイプ説明
nameString名前付き範囲の新しい名前。

Return
NamedRange - 呼び出しによって名前が設定された範囲。

名前付き範囲の範囲設定[setRange(範囲)]

setRange(range)
この名前付き範囲の範囲を設定または更新します。

Parameters
名前タイプ説明
rangeRangeこの名前付き範囲に関連付けるスプレッドシートの範囲。

Return
NamedRange - スプレッドシートの範囲が設定された名前付き範囲。


最後に

GAS名前付き範囲機能のまとめをご紹介させていただきました。

必要に応じて、有益な情報でさらに更新していきたいと思います。

プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。

実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。

実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。

自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。

GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。

Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓

Googleスプレッドシートの使い方や機能がわかるショートカットキー全まとめ一覧【初心者こそ必見】
表計算ソフトとして、まだまだExcelのシェア率は高いですが、GoogleスプレッドシートにはExcelにはない超強力な関数があったり、Excelとは違って常に最新版を無料で使用できます。なにより、インターネットを使ったオンライン...

ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。




コメント

//▼2023/04/08追加 //https://lovagelab.com/posts/3406/ //▲2023/04/08追加