非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【GAS】Googleスプレッドシートの「名前の範囲」機能をGASで使うと超便利

   

IT系雑談ブログでも紹介したGoogleスプレッドシートの名前の範囲機能ですが、これをGoogle Apps Script(GAS)と組み合わせて使うと超便利なので紹介します。

 

名前の範囲の設定

スプレッドシートのA2セルに「Test」と入力されているとします。このセルを名前付き範囲に設定します。

 

名前ボックスの右の▼をクリックすると「名前付き範囲を管理」と現れるのでクリックします。名前付き範囲として設定しますが、詳しい設定方法はこちらを参照ください。

 

以下のようにA2セルを「Test」という名前に設定したものとします。

 

GASで名前付き範囲の利用例

以下のようにgetRangeByNameメソッドを使ってセルを特定させます。range変数にTestという名前を付けたA2セル情報がセットされるので、あとは各種メソッドが使えます。

var range = SpreadsheetApp.getActiveSpreadsheet().getRangeByName('Test');
Logger.log(range.getValue());
Logger.log(range.getColumn());
Logger.log(range.getRow());
 

 

実行結果

上記ソースコードを実行した結果が以下です。セル内の文字列、列No、行Noが取得できたことがわかるかと思います。

 

複数の名前付き範囲だけを取得するメソッド

シート内に複数の名前付き範囲が散りばめられている場合は、getNamedRangesメソッドを使うと便利です。以下のコードはranges変数に名前付きセルが配列としてセットされます。

var ranges = SpreadsheetApp.getActiveSpreadsheet().getNamedRanges();
ranges.forEach(function(range){
  Logger.log(range.getName() +" : "+ range.getRange().getValue());    
});
 

 

 

スポンサーリンク

 - Google Apps Script