GAS開発者向けにスプレッドシートの名前付き範囲機能をすべてまとめました。
セル範囲に名前を付けるとデータが何を表してるのかわかりやすくなったり、関数の設定やGASの実装も簡単になると思います。
要領よくスプレッドシートを扱えるようにしたい場合は、ぜひ使いこなしてみてください。
名前付き範囲に関するメソッドをすべて載せてます。少しでも参考になれば幸いです。
Google Apps Script スプレッドシート 基礎 リファレンス
当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。
若干、文言がおかしい可能性がありますが、あらかじめご了承ください。
GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。
まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。
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());
}
名前 | タイプ | 説明 |
---|---|---|
name | String | 範囲を付ける名前です。 |
range | 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());
}
}
名前 | タイプ | 説明 |
---|---|---|
name | String | 取得する範囲の名前。 |
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");
}
名前 | タイプ | 説明 |
---|---|---|
name | String | 範囲名。 |
名前付き範囲クラス[NamedRange]
名前付き範囲クラスメソッドです。
スプレッドシートで名前付き範囲を作成、アクセス、および変更します。名前付き範囲は、関連する文字列エイリアスを持つ範囲です。それらはデータ>名前付き範囲...メニューの下のシートUIを通して見られて、編集されることができます。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class NamedRange
方法 | タイプ | 説明 |
---|---|---|
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");
}
}
名前 | タイプ | 説明 |
---|---|---|
name | String | 名前付き範囲の新しい名前。 |
Return
NamedRange - 呼び出しによって名前が設定された範囲。
名前付き範囲の範囲設定[setRange(範囲)]
setRange(range)
この名前付き範囲の範囲を設定または更新します。
名前 | タイプ | 説明 |
---|---|---|
range | Range | この名前付き範囲に関連付けるスプレッドシートの範囲。 |
Return
NamedRange - スプレッドシートの範囲が設定された名前付き範囲。
最後に
GAS名前付き範囲機能のまとめをご紹介させていただきました。
必要に応じて、有益な情報でさらに更新していきたいと思います。
プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。
実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。
実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。
自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。
GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。
Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓
ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。
コメント