Google Apps Script

【GAS】セルにリスト(プルダウン)を作成する

こんにちは、もりです!

この記事では、GASでスプレッドシートにリスト(プルダウン)を作る方法を紹介します。

ここで作る「リスト」は、スプレッドシートの「データの入力規則」で作るリストのことです。

  • リストを直接指定
  • リストを範囲で指定

の2種類の方法を紹介します。

【リストを直接指定】選択肢を「配列」で指定する

リストの選択肢を「配列」で指定する方法です。

A1セルに、選択肢「VBA / GAS / Python」のリストを作成するスクリプトです。

 

スクリプトの実行結果です。

gas-pulldown1

 

スプレッドシートの「データ」→「データの入力規則」で、設定内容を確認できます。

gas-pulldown2-2

複数セルに一括してリストを作成する

12行目のgetRangeメソッドの引数を変更します。

・A1セル~A10セルにリストを作成する

const cell = sheet.getRange(‘A1:A10’);

・A列のすべてのセルにリストを作成する

const cell = sheet.getRange(1, 1, sheet.getMaxRows(), 1);

【リストを範囲で指定】選択肢を「セル範囲」で指定する

前項の方法では、リストの選択肢を変更したい場合、スクリプトエディタを開いて変更しなければなりません。

この項では、スプレッドシートの「セル」に選択肢を用意する方法を2つ紹介します。

①選択肢の「セル範囲」を固定する

このように、C2セル~C7セルの値をリストの選択肢にする方法です。

gas-pulldown3

 

スクリプトがこちら。

 

「データ」→「データの入力規則」で設定内容を確認します。「リストを範囲で指定」しているので、セルの値を変更すると、リストの選択肢も変更されます。

gas-pulldown4-2

②選択肢の「セル範囲」をシートの最終行まで確保する

前項では、「C2セル~C7セル」と、セル範囲を固定しました。これでは、選択肢を追加したいときに不便です。

そこで、「2行目~シートの最終行のセル」を選択肢の範囲にする方法も紹介します。6行目のgetRangeメソッドの引数を変更しています。

 

C2セル~C1000セル(シートの最終行が1000の場合)が、範囲として指定されました。

gas-pulldown5

 

選択肢のセル範囲を広く確保した場合でも、空白のセルは無視され、値のみがリストに表示されます。

gas-pulldown6