GAS開発者向けにスプレッドシートのデータの入力規則機能をすべてまとめました。
変なデータを入力させたくない時など、入力に制限をかけたい時、メチャクチャ便利ですね。
GASのインプットにセルの値を使用する場合はガチガチにガードをかけておくと、実装も楽になるはずです。
全部まとめたら随分と長くなってしまいましたが。。。自分に必要な条件に絞って参考にしてください。
データの入力規則に関するメソッドをすべて載せてます。少しでも参考になれば幸いです。
- Google Apps Script スプレッドシート 基礎 リファレンス
- スプレッドシートAPPクラス[SpreadsheetApp]のデータの入力規則作成
- セル範囲クラス[Range]のデータの入力規則設定
- セル範囲クラス[Range]のデータの入力規則取得
- データの入力規則クラス[DataValidation]
- データの入力規則ビルダークラス[DataValidationBuilder]
- データの入力規則構築[build()]
- データの入力規則ビルダーコピー作成[copy()]
- データの入力規則警告または拒否取得[getAllowInvalid()]
- データの入力規則基準タイプ取得[getCriteriaType()]
- データの入力規則基準引数配列取得[getCriteriaValues()]
- データの入力規則ヘルプテキスト取得[getHelpText()]
- チェックボックス入力規則設定1[requireCheckbox()]
- チェックボックス入力規則設定2[requireCheckbox(チェックされた時の値)]
- チェックボックス入力規則設定3[requireCheckbox(チェックされた時の値, チェックされていない時の値)]
- 日付入力規則設定[requireDate()]
- 指定日付より後かの入力規則設定[requireDateAfter(日付)]
- 指定日付より前かの入力規則設定[requireDateBefore(日付)]
- 指定日付が2つの間にあるかの入力規則設定[requireDateBetween(開始, 終了)]
- 指定日付と等しいかの入力規則設定[requireDateEqualTo(日付)]
- 指定日付が2つの間にないかの入力規則設定[requireDateNotBetween(開始, 終了)]
- 指定日付以降かの入力規則設定[requireDateOnOrAfter(日付)]
- 指定日付以前かの入力規則設定[requireDateOnOrBefore(日付)]
- 指定数式がtrueかの入力規則設定[requireFormulaSatisfied(数式)]
- 指定数値が2つの間にあるかの入力規則設定[requireNumberBetween(開始, 終了)]
- 指定数値と等しいかの入力規則設定[requireNumberEqualTo(数値)]
- 指定数値より大きいかの入力規則設定[requireNumberGreaterThan(数値)]
- 指定数値以上かの入力規則設定[requireNumberGreaterThanOrEqualTo(数値)]
- 指定数値より小さいかの入力規則設定[requireNumberLessThan(数値)]
- 指定数値以下かの入力規則設定[requireNumberLessThanOrEqualTo(数値)]
- 指定数値が2つの間にないかの入力規則設定[requireNumberNotBetween(開始, 終了)]
- 指定数値と等しくないかの入力規則設定[requireNumberNotEqualTo(数値)]
- 指定値が含まれているかの入力規則設定[requireTextContains(テキスト)]
- 指定値が含まれていないかの入力規則設定[requireTextDoesNotContain(テキスト)]
- 指定値が等しいかの入力規則設定[requireTextEqualTo(テキスト)]
- 電子メールアドレスの形式であるかの入力規則設定[requireTextIsEmail()]
- URLの形式であるかの入力規則設定[requireTextIsUrl()]
- 指定値の1つと等しいかの入力規則設定1[requireValueInList(値's)]
- 指定値の1つと等しいかの入力規則設定2[requireValueInList(値's, ドロップダウン)]
- 特定セル範囲内の値と等しいかの入力規則設定1[requireValueInRange(セル範囲)]
- 特定セル範囲内の値と等しいかの入力規則設定2[requireValueInRange(セル範囲, ドロップダウン)]
- データの入力規則警告または拒否設定[setAllowInvalid(警告または拒否か)]
- テキスト斜体設定[setItalic(斜体)]
- データの入力規則ヘルプテキスト設定[setHelpText(ヘルプテキスト)]
- データ入力基準値設定[withCriteria(基準, 配列)]
- 最後に
Google Apps Script スプレッドシート 基礎 リファレンス
当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。
若干、文言がおかしい可能性がありますが、あらかじめご了承ください。
GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。
まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。
GASの本はまだまだ少ないですね。基礎レベルであれば、以下の参考書が初心者にはベストの本です。
基本的な仕様やよく使われる機能の設定方法がまとまっています。
※JavaScriptの知識が既にある程度ある人にとっては冗長かもしれません。
スプレッドシートAPPクラス[SpreadsheetApp]のデータの入力規則作成
スプレッドシートAPPクラスのデータの入力規則作成です。
データの入力規則ビルダー作成[newDataValidation()]
newDataValidation()
データの入力規則用のビルダーを作成します。
function newDataValidationSample() {
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation()
.requireNumberBetween(1, 100)
.setAllowInvalid(false)
.setHelpText('Number must be between 1 and 100.')
.build();
cell.setDataValidation(rule);
}
Return
DataValidationBuilder - 新しいビルダー。
セル範囲クラス[Range]のデータの入力規則設定
セル範囲のデータの入力規則設定メソッドです。
データの入力規則設定[setDataValidation(入力規則)]
setDataValidation(rule)
範囲内のすべてのセルに対して1つのデータの入力規則を設定します。
function setDataValidationSample() {
// セルA1のデータ入力規則を設定して、B1:B10の値を要求する。
var cell = SpreadsheetApp.getActive().getRange('A1');
var range = SpreadsheetApp.getActive().getRange('B1:B10');
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
rule | DataValidation | 設定するデータの入力規則、またはデータ検証を削除する場合はnull。 |
Return
Range - 連鎖用のセル範囲。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | setDataValidation(rule)
データの入力規則配列設定[setDataValidations(入力規則's)]
setDataValidations(rules)
範囲内のすべてのセルにデータの入力規則を設定します。このメソッドは、行と列の両方で索引付けされたデータ検証の2次元配列を取ります。配列の次元は範囲の次元に対応していなければなりません。
function setDataValidationsSample() {
// Sheet2!A1:A10の値を要求するようにSheet1!A1:B5のデータの入力規則を設定します。
var destinationRange = SpreadsheetApp.getActive().getSheetByName('Sheet1').getRange('A1:B5');
var sourceRange = SpreadsheetApp.getActive().getSheetByName('Sheet2').getRange('A1:A10');
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(sourceRange).build();
var rules = destinationRange.getDataValidations();
for (var i = 0; i < rules.length; i++) {
for (var j = 0; j < rules[i].length; j++) {
rules[i][j] = rule;
}
}
destinationRange.setDataValidations(rules);
}
名前 | タイプ | 説明 |
---|---|---|
rules | DataValidation[][] | 設定するデータの入力規則の2次元配列。 null値はデータ検証を削除します。 |
Return
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | setDataValidations(rules)
セル範囲クラス[Range]のデータの入力規則取得
セル範囲のデータの入力規則取得メソッドです。
データの入力規則取得[getDataValidation()]
getDataValidation()
範囲内の左上のセルのデータの入力規則を返します。データ検証がセルに設定されていない場合、このメソッドはnullを返します。
function getDataValidationSample() {
// セルA1のデータ入力規則に関する情報をログに記録します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = cell.getDataValidation();
if (rule != null) {
var criteria = rule.getCriteriaType();
var args = rule.getCriteriaValues();
Logger.log('The data validation rule is %s %s', criteria, args);
} else {
Logger.log('The cell does not have a data validation rule.')
}
}
Return
DataValidation - 範囲内の左上のセルに対するデータの入力規則。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | getDataValidation()
データの入力規則配列取得[getDataValidations()]
getDataValidations()
範囲内のすべてのセルに対するデータの入力規則を返します。特定のセルにデータ検証が設定されていない場合、このメソッドは配列内のそのセルの位置にnullを返します。
function getDataValidationsSample() {
// 2013年の日付を必要とする既存のデータの入力規則を2014年の日付を要求するように変更します。
var oldDates = [new Date('1/1/2013'), new Date('12/31/2013')];
var newDates = [new Date('1/1/2014'), new Date('12/31/2014')];
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns());
var rules = range.getDataValidations();
for (var i = 0; i < rules.length; i++) {
for (var j = 0; j < rules[i].length; j++) {
var rule = rules[i][j];
if (rule != null) {
var criteria = rule.getCriteriaType();
var args = rule.getCriteriaValues();
if (criteria == SpreadsheetApp.DataValidationCriteria.DATE_BETWEEN
&& args[0].getTime() == oldDates[0].getTime()
&& args[1].getTime() == oldDates[1].getTime()) {
// 既存のルールからビルダーを作成してから日付を変更します。
rules[i][j] = rule.copy().withCriteria(criteria, newDates).build();
}
}
}
}
range.setDataValidations(rules);
}
Return
DataValidation[][] - 範囲内のセルに関連付けられているデータの入力規則の2次元配列。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | getDataValidations()
データの入力規則クラス[DataValidation]
データの入力規則にアクセスします。新しいルールを作成するには、SpreadsheetApp.newDataValidation()とDataValidationBuilderを使用してください。 Range.setDataValidation(rule)を使用して範囲の検証規則を設定できます。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class DataValidation
方法 | タイプ | 説明 |
---|---|---|
copy() | DataValidationBuilder | このルールの設定に基づいてデータ検証ルールのビルダーを作成します。 |
getAllowInvalid() | Boolean | 入力がデータ検証に失敗した場合にルールが警告を表示する場合はtrueを返し、入力を完全に拒否する場合はfalseを返します。 |
getCriteriaType() | DataValidationCriteria | DataValidationCriteria列挙体で定義されているルールの条件タイプを取得します。 |
getCriteriaValues() | Object[] | ルールの基準に対する引数の配列を取得します。 |
getHelpText() | String | ルールのヘルプテキストを取得します。ヘルプテキストが設定されていない場合はnullを返します。 |
データの入力規則ビルダークラス[DataValidationBuilder]
データの入力規則用のビルダー。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class DataValidationBuilder
方法 | タイプ | 説明 |
---|---|---|
build() | DataValidation | ビルダーに適用された設定からデータの入力規則を構築します。 |
copy() | DataValidationBuilder | このルールの設定に基づいてデータ検証ルールのビルダーを作成します。 |
getAllowInvalid() | Boolean | 入力がデータ検証に失敗した場合にルールが警告を表示する場合はtrueを返し、入力を完全に拒否する場合はfalseを返します。 |
getCriteriaType() | DataValidationCriteria | DataValidationCriteria列挙体で定義されているルールの条件タイプを取得します。 |
getCriteriaValues() | Object[] | ルールの基準に対する引数の配列を取得します。 |
getHelpText() | String | ルールのヘルプテキストを取得します。ヘルプテキストが設定されていない場合はnullを返します。 |
requireCheckbox() | DataValidationBuilder | 入力がブール値であることを要求するデータの入力規則を設定します。この値はチェックボックスとして表示されます。 |
requireCheckbox(checkedValue) | DataValidationBuilder | 入力が指定された値または空白であることを要求するデータの入力規則を設定します。 |
requireCheckbox(checkedValue, uncheckedValue) | DataValidationBuilder | 入力が指定された値の1つであることを要求するデータの入力規則を設定します。 |
requireDate() | DataValidationBuilder | 日付を要求するデータの入力規則を設定します。 |
requireDateAfter(date) | DataValidationBuilder | 指定された値の後に日付を要求するデータの入力規則を設定します。 |
requireDateBefore(date) | DataValidationBuilder | 与えられた値の前に日付を要求するデータの入力規則を設定します。 |
requireDateBetween(start, end) | DataValidationBuilder | 指定された2つの日付の間にあるか、どちらかである日付を要求するデータの入力規則を設定します。 |
requireDateEqualTo(date) | DataValidationBuilder | 与えられた値に等しい日付を要求するデータの入力規則を設定します。 |
requireDateNotBetween(start, end) | DataValidationBuilder | 指定された2つの日付の間ではなく、どちらでもない日付を要求するデータの入力規則を設定します。 |
requireDateOnOrAfter(date) | DataValidationBuilder | 指定された値以降の日付を要求するデータの入力規則を設定します。 |
requireDateOnOrBefore(date) | DataValidationBuilder | 与えられた値以前の日付を要求するデータの入力規則を設定します。 |
requireFormulaSatisfied(formula) | DataValidationBuilder | 与えられた式がtrueと評価されることを要求するデータの入力規則を設定します。 |
requireNumberBetween(start, end) | DataValidationBuilder | 指定された2つの数値の間にあるか、またはそのいずれかである数値を要求するデータの入力規則を設定します。 |
requireNumberEqualTo(number) | DataValidationBuilder | 与えられた値に等しい数を要求するデータの入力規則を設定します。 |
requireNumberGreaterThan(number) | DataValidationBuilder | 与えられた値よりも大きい数を要求するデータの入力規則を設定します。 |
requireNumberGreaterThanOrEqualTo(number) | DataValidationBuilder | 与えられた値以上の数値を要求するデータの入力規則を設定します。 |
requireNumberLessThan(number) | DataValidationBuilder | 与えられた値よりも小さい数を要求するデータの入力規則を設定します。 |
requireNumberLessThanOrEqualTo(number) | DataValidationBuilder | 与えられた値以下の数値を要求するデータの入力規則を設定します。 |
requireNumberNotBetween(start, end) | DataValidationBuilder | 指定された2つの数値の間にない、またはどちらでもない数値を要求するデータの入力規則を設定します。 |
requireNumberNotEqualTo(number) | DataValidationBuilder | 与えられた値と等しくない数を要求するデータの入力規則を設定します。 |
requireTextContains(text) | DataValidationBuilder | 入力に指定の値が含まれることを要求するデータの入力規則を設定します。 |
requireTextDoesNotContain(text) | DataValidationBuilder | 入力に与えられた値が含まれていないことを要求するデータの入力規則を設定します。 |
requireTextEqualTo(text) | DataValidationBuilder | 入力が与えられた値と等しいことを要求するデータの入力規則を設定します。 |
requireTextIsEmail() | DataValidationBuilder | 入力が電子メールアドレスの形式であることを要求するデータの入力規則を設定します。 |
requireTextIsUrl() | DataValidationBuilder | 入力がURLの形式であることを要求するデータの入力規則を設定します。 |
requireValueInList(values) | DataValidationBuilder | 入力が与えられた値の1つと等しいことを要求するデータの入力規則を設定します。 |
requireValueInList(values, showDropdown) | DataValidationBuilder | ドロップダウンメニューを非表示にするオプションを指定して、入力が指定された値の1つに等しいことを要求するデータの入力規則を設定します。 |
requireValueInRange(range) | DataValidationBuilder | 入力が特定の範囲内の値と等しいことを要求するデータの入力規則を設定します。 |
requireValueInRange(range, showDropdown) | DataValidationBuilder | ドロップダウンメニューを非表示にするオプションを使用して、入力が特定の範囲内の値に等しいことを要求するデータの入力規則を設定します。 |
setAllowInvalid(allowInvalidData) | DataValidationBuilder | 入力がデータ検証に失敗した場合に警告を表示するか、入力を完全に拒否するかを設定します。 |
setHelpText(helpText) | DataValidationBuilder | データ検証が設定されているセルにユーザーがカーソルを合わせた場合に表示されるヘルプテキストを設定します。 |
withCriteria(criteria, args) | DataValidationBuilder | データの入力規則をDataValidationCriteria値で定義された基準(通常は既存の規則の基準と引数から取得)に設定します。 |
データの入力規則構築[build()]
build()
ビルダーに適用された設定からデータの入力規則を構築します。
Return
DataValidation - データの入力規則の表現。
データの入力規則ビルダーコピー作成[copy()]
copy()
このルールの設定に基づいてデータ検証ルールのビルダーを作成します。
Return
DataValidationBuilder - このルールの設定に基づくビルダー。
データの入力規則警告または拒否取得[getAllowInvalid()]
getAllowInvalid()
入力がデータ検証に失敗した場合にルールが警告を表示する場合はtrueを返し、入力を完全に拒否する場合はfalseを返します。新しいデータの入力規則のデフォルトはtrueです。
Return
Boolean - データの検証に失敗する入力をルールが許可する場合はtrue、それ以外の場合はfalseです。そうでない場合はfalse。
データの入力規則基準タイプ取得[getCriteriaType()]
getCriteriaType()
DataValidationCriteria列挙体で定義されているルールの条件タイプを取得します。基準の引数を取得するには、getCriteriaValues()を使用してください。これらの値を使用してデータの入力規則を作成または変更するには、withCriteria(criteria、args)を参照してください。
Return
DataValidationCriteria - データ検証基準の種類。
データの入力規則基準引数配列取得[getCriteriaValues()]
getCriteriaValues()
ルールの基準に対する引数の配列を取得します。基準タイプを取得するには、getCriteriaType()を使用してください。これらの値を使用してデータの入力規則を作成または変更するには、withCriteria(criteria、args)を参照してください。
Return
Object[] - ルールの基準タイプに適した引数の配列。引数の数とその型は、DataValidationBuilderクラスの対応するrequire ...()メソッドと一致します。
データの入力規則ヘルプテキスト取得[getHelpText()]
getHelpText()
ルールのヘルプテキストを取得します。ヘルプテキストが設定されていない場合はnullを返します。
Return
String - ルールのヘルプテキスト。ヘルプテキストが設定されていない場合はnull。
チェックボックス入力規則設定1[requireCheckbox()]
requireCheckbox()
入力がブール値であることを要求するデータの入力規則を設定します。この値はチェックボックスとして表示されます。
function requireCheckbox1Sample() {
// セルA1のデータ検証をブール値を要求するように設定します。値はチェックボックスとして表示されます。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build();
cell.setDataValidation(rule);
}
Return
DataValidationBuilder - 連鎖用のビルダー。
チェックボックス入力規則設定2[requireCheckbox(チェックされた時の値)]
requireCheckbox(checkedValue)
入力が指定された値または空白であることを要求するデータの入力規則を設定します。入力が指定された値と一致すると、セルはチェックボックスとして表示されます。入力が空白の場合、セルは未チェックのチェックボックスとして表示されます。
function requireCheckbox2Sample() {
// チェックボックスとして表示されるカスタムチェック値を要求するようにセルA1のデータ検証を設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireCheckbox('APPROVED').build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
checkedValue | Object | チェックボックスに割り当てられた値。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
チェックボックス入力規則設定3[requireCheckbox(チェックされた時の値, チェックされていない時の値)]
requireCheckbox(checkedValue, uncheckedValue)
入力が指定された値の1つであることを要求するデータの入力規則を設定します。入力がcheckedValueの場合、セルはチェックボックスとして表示されます。入力がuncheckedValueの場合、セルは未チェックのチェックボックスとして表示されます。
function requireCheckbox3Sample() {
// チェックボックスとして表示されるカスタムチェック値を要求するようにセルA1のデータ検証を設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireCheckbox('APPROVED', 'PENDING').build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
checkedValue | Object | チェックボックスに割り当てられた値。 |
uncheckedValue | Object | チェックされていないボックスに割り当てられた値。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
日付入力規則設定[requireDate()]
requireDate()
日付を要求するデータの入力規則を設定します。
function requireDateSample() {
// セルA1のデータ検証を日付を要求する設定にします。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireDate().build();
cell.setDataValidation(rule);
}
Return
DataValidationBuilder - 連鎖用のビルダー。
指定日付より後かの入力規則設定[requireDateAfter(日付)]
requireDateAfter(date)
指定された値の後に日付を要求するデータの入力規則を設定します。 Dateオブジェクトの時間フィールドは無視されます。日、月、年のフィールドのみが使用されます。
function requireDateAfterSample() {
// 2013年1月1日より後の日付を要求するようにセルA1のデータ検証を設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireDateAfter(new Date('1/1/2013')).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
date | Date | 受け入れられない最新の日付。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定日付より前かの入力規則設定[requireDateBefore(日付)]
requireDateBefore(date)
与えられた値の前に日付を要求するデータの入力規則を設定します。 Dateオブジェクトの時間フィールドは無視されます。日、月、年のフィールドのみが使用されます。
function requireDateBeforeSample() {
// 2013年1月1日より前の日付が必要になるようにセルA1のデータ検証を設定します
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireDateBefore(new Date('1/1/2013')).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
date | Date | 受け入れられない最も早い日付。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定日付が2つの間にあるかの入力規則設定[requireDateBetween(開始, 終了)]
requireDateBetween(start, end)
指定された2つの日付の間にあるか、どちらかである日付を要求するデータの入力規則を設定します。 Dateオブジェクトの時間フィールドは無視されます。日、月、年のフィールドのみが使用されます。
function requireDateBetweenSample() {
// 2013年の日付を要求するようにセルA1のデータ検証を設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation()
.requireDateBetween(new Date('1/1/2013'), new Date('12/31/2013')).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
start | Date | 最も早い許容日。 |
end | Date | 受け入れ可能な最新の日付。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定日付と等しいかの入力規則設定[requireDateEqualTo(日付)]
requireDateEqualTo(date)
与えられた値に等しい日付を要求するデータの入力規則を設定します。 Dateオブジェクトの時間フィールドは無視されます。日、月、年のフィールドのみが使用されます。
function requireDateEqualToSample() {
// 2013年1月1日に等しい日付を要求するようにセルA1のデータ検証を設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireDateEqualTo(new Date('1/1/2013'))
.build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
date | Date | 唯一の受け入れ可能な日付。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定日付が2つの間にないかの入力規則設定[requireDateNotBetween(開始, 終了)]
requireDateNotBetween(start, end)
指定された2つの日付の間ではなく、どちらでもない日付を要求するデータの入力規則を設定します。 Dateオブジェクトの時間フィールドは無視されます。日、月、年のフィールドのみが使用されます。
function requireDateNotBetweenSample() {
// 2013年以外の日付を要求するようにセルA1のデータ検証を設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation()
.requireDateNotBetween(new Date('1/1/2013'), new Date('12/31/2013')).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
start | Date | 受け入れられない最も早い日付。 |
end | Date | 受け入れられない最新の日付。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定日付以降かの入力規則設定[requireDateOnOrAfter(日付)]
requireDateOnOrAfter(date)
指定された値以降の日付を要求するデータの入力規則を設定します。 Dateオブジェクトの時間フィールドは無視されます。日、月、年のフィールドのみが使用されます。
function requireDateOnOrAfterSample() {
// 2013年1月1日以降の日付を要求するようにセルA1のデータ検証を設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation()
.requireDateOnOrAfter(new Date('1/1/2013')).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
date | Date | 最も早い許容日。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定日付以前かの入力規則設定[requireDateOnOrBefore(日付)]
requireDateOnOrBefore(date)
与えられた値以前の日付を要求するデータの入力規則を設定します。 Dateオブジェクトの時間フィールドは無視されます。日、月、年のフィールドのみが使用されます。
function requireDateOnOrBeforeSample() {
// 2013年1月1日以前の日付を要求するようにセルA1のデータ検証を設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation()
.requireDateOnOrBefore(new Date('1/1/2013')).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
date | Date | 受け入れ可能な最新の日付。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定数式がtrueかの入力規則設定[requireFormulaSatisfied(数式)]
requireFormulaSatisfied(formula)
与えられた式がtrueと評価されることを要求するデータの入力規則を設定します。
function requireFormulaSatisfiedSample() {
// セルA1のデータ検証をカスタム数式でB1に等しく設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireFormulaSatisfied('=EQ(A1,B1)').build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
formula | String | 入力が有効な場合にtrueと評価されるカスタム式。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定数値が2つの間にあるかの入力規則設定[requireNumberBetween(開始, 終了)]
requireNumberBetween(start, end)
指定された2つの数値の間にあるか、またはそのいずれかである数値を要求するデータの入力規則を設定します。
function requireNumberBetweenSample() {
// セルA1のデータ検証に1~10の数値を要求する設定にします。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireNumberBetween(1, 10).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
start | Number | 許容される最小値。 |
end | Number | 許容可能な最大値。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定数値と等しいかの入力規則設定[requireNumberEqualTo(数値)]
requireNumberEqualTo(number)
与えられた値に等しい数を要求するデータの入力規則を設定します。
function requireNumberEqualToSample() {
// セルA1のデータ検証を設定して、3.1415926536に等しい数値を要求します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireNumberEqualTo(3.1415926536).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
number | Number | 唯一の許容値。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定数値より大きいかの入力規則設定[requireNumberGreaterThan(数値)]
requireNumberGreaterThan(number)
与えられた値よりも大きい数を要求するデータの入力規則を設定します。
function requireNumberGreaterThanSample() {
// 0より大きい数値を要求するようにセルA1のデータ検証を設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireNumberGreaterThan(0).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
number | Number | 許容できない最大値。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定数値以上かの入力規則設定[requireNumberGreaterThanOrEqualTo(数値)]
requireNumberGreaterThanOrEqualTo(number)
与えられた値以上の数値を要求するデータの入力規則を設定します。
function requireNumberGreaterThanOrEqualToSample() {
// セルA1のデータ検証を0以上の数値を要求する設定にします。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireNumberGreaterThanOrEqualTo(0).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
number | Number | 許容される最小値。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定数値より小さいかの入力規則設定[requireNumberLessThan(数値)]
requireNumberLessThan(number)
与えられた値よりも小さい数を要求するデータの入力規則を設定します。
function requireNumberLessThanSample() {
// 0未満の数値を要求するようにセルA1のデータ検証を設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireNumberLessThan(0).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
number | Number | 許容できない最小値。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定数値以下かの入力規則設定[requireNumberLessThanOrEqualTo(数値)]
requireNumberLessThanOrEqualTo(number)
与えられた値以下の数値を要求するデータの入力規則を設定します。
function requireNumberLessThanOrEqualToSample() {
// セルA1のデータ検証を0以下の数値を要求する設定にします。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireNumberLessThanOrEqualTo(0).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
number | Number | 許容可能な最大値。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定数値が2つの間にないかの入力規則設定[requireNumberNotBetween(開始, 終了)]
requireNumberNotBetween(start, end)
指定された2つの数値の間にない、またはどちらでもない数値を要求するデータの入力規則を設定します。
function requireNumberNotBetweenSample() {
// セルA1のデータ検証を設定して、1~10以外の数値を要求します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireNumberNotBetween(1, 10).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
start | Number | 許容できない最小値。 |
end | Number | 許容できない最大値。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定数値と等しくないかの入力規則設定[requireNumberNotEqualTo(数値)]
requireNumberNotEqualTo(number)
与えられた値と等しくない数を要求するデータの入力規則を設定します。
function requireNumberNotEqualToSample() {
// セルA1のデータ検証を設定して、0以外の数値を要求します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireNumberNotEqualTo(0).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
number | Number | 唯一の受け入れられない値。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定値が含まれているかの入力規則設定[requireTextContains(テキスト)]
requireTextContains(text)
入力に指定の値が含まれることを要求するデータの入力規則を設定します。
function requireTextContainsSample() {
// "Google"を含む任意の値を要求するようにセルA1のデータ検証を設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireTextContains('Google').build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
text | String | 入力に含まれている必要がある値。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定値が含まれていないかの入力規則設定[requireTextDoesNotContain(テキスト)]
requireTextDoesNotContain(text)
入力に与えられた値が含まれていないことを要求するデータの入力規則を設定します。
function requireTextDoesNotContainSample() {
// "@"を含まない値を要求するようにセルA1のデータ検証を設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireTextDoesNotContain('@').build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
text | String | 入力に含まれてはならない値。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定値が等しいかの入力規則設定[requireTextEqualTo(テキスト)]
requireTextEqualTo(text)
入力が与えられた値と等しいことを要求するデータの入力規則を設定します。
function requireTextEqualToSample() {
// セルA1のデータ検証を「はい」に設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireTextEqualTo('Yes').build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
text | String | 唯一の許容値。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
電子メールアドレスの形式であるかの入力規則設定[requireTextIsEmail()]
requireTextIsEmail()
入力が電子メールアドレスの形式であることを要求するデータの入力規則を設定します。
function requireTextIsEmailSample() {
// セルA1のデータ検証を電子メールアドレスの形式のテキストを要求する設定にします。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireTextIsEmail().build();
cell.setDataValidation(rule);
}
Return
DataValidationBuilder - 連鎖用のビルダー。
URLの形式であるかの入力規則設定[requireTextIsUrl()]
requireTextIsUrl()
入力がURLの形式であることを要求するデータの入力規則を設定します。
function requireTextIsUrlSample() {
// セルA1のデータ検証をURLの形式のテキストを要求する設定にします。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireTextIsUrl().build();
cell.setDataValidation(rule);
}
Return
DataValidationBuilder - 連鎖用のビルダー。
指定値の1つと等しいかの入力規則設定1[requireValueInList(値's)]
requireValueInList(values)
入力が与えられた値の1つと等しいことを要求するデータの入力規則を設定します。
function requireValueInList1Sample() {
// セルA1のデータ検証をドロップダウンメニューで「はい」または「いいえ」に設定します。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireValueInList(['Yes', 'No']).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
values | String[] | 許容値の配列。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
指定値の1つと等しいかの入力規則設定2[requireValueInList(値's, ドロップダウン)]
requireValueInList(values, showDropdown)
ドロップダウンメニューを非表示にするオプションを指定して、入力が指定された値の1つに等しいことを要求するデータの入力規則を設定します。
function requireValueInList2Sample() {
// セルA1のデータ検証をドロップダウンメニューなしで "Yes"または "No"を要求する設定にします。
var cell = SpreadsheetApp.getActive().getRange('A1');
var rule = SpreadsheetApp.newDataValidation().requireValueInList(['Yes', 'No'], false).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
values | String[] | 許容値の配列。 |
showDropdown | Boolean | スプレッドシートに値のドロップダウンメニューが表示される場合はtrueです。そうでない場合はfalse。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
特定セル範囲内の値と等しいかの入力規則設定1[requireValueInRange(セル範囲)]
requireValueInRange(range)
入力が特定の範囲内の値と等しいことを要求するデータの入力規則を設定します。
function requireValueInRangeSample() {
// セルA1のデータ検証をドロップダウンメニューでB1:B10からの値を要求する設定にします。
var cell = SpreadsheetApp.getActive().getRange('A1');
var range = SpreadsheetApp.getActive().getRange('B1:B10');
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
range | Range | 許容値を含む範囲。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
特定セル範囲内の値と等しいかの入力規則設定2[requireValueInRange(セル範囲, ドロップダウン)]
requireValueInRange(range, showDropdown)
ドロップダウンメニューを非表示にするオプションを使用して、入力が特定の範囲内の値に等しいことを要求するデータの入力規則を設定します。
function requireValueInRangeSample() {
// セルA1のデータ検証をドロップダウンメニューなしでB1:B10からの値を要求する設定にします。
var cell = SpreadsheetApp.getActive().getRange('A1');
var range = SpreadsheetApp.getActive().getRange('B1:B10');
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range, false).build();
cell.setDataValidation(rule);
}
名前 | タイプ | 説明 |
---|---|---|
range | Range | 許容値を含む範囲。 |
showDropdown | Boolean | スプレッドシートに値のドロップダウンメニューが表示される場合はtrueです。そうでない場合はfalse。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
データの入力規則警告または拒否設定[setAllowInvalid(警告または拒否か)]
setAllowInvalid(allowInvalidData)
入力がデータ検証に失敗した場合に警告を表示するか、入力を完全に拒否するかを設定します。新しいデータの入力規則のデフォルトはtrueです。
名前 | タイプ | 説明 |
---|---|---|
allowInvalidData | Boolean | データ検証に失敗する入力をルールが許可する必要がある場合はtrueです。そうでない場合はfalse。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
テキスト斜体設定[setItalic(斜体)]
setItalic(italic)
テキストを斜体にするかどうかを設定します。
名前 | タイプ | 説明 |
---|---|---|
italic | Boolean | テキストが斜体であるかどうか。 |
Return
TextStyleBuilder - 連鎖用のビルダー。
データの入力規則ヘルプテキスト設定[setHelpText(ヘルプテキスト)]
setHelpText(helpText)
データ検証が設定されているセルにユーザーがカーソルを合わせた場合に表示されるヘルプテキストを設定します。
名前 | タイプ | 説明 |
---|---|---|
helpText | String | 設定するヘルプテキスト。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
データ入力基準値設定[withCriteria(基準, 配列)]
withCriteria(criteria, args)
データの入力規則をDataValidationCriteria値で定義された基準(通常は既存の規則の基準と引数から取得)に設定します。
名前 | タイプ | 説明 |
---|---|---|
criteria | DataValidationCriteria | データ検証基準の種類。 |
args | Object[] | 基準タイプに適した引数の配列。引数の数とその型は、上記の対応するrequire ...()メソッドと一致します。 |
Return
DataValidationBuilder - 連鎖用のビルダー。
最後に
GASデータの入力規則機能のまとめをご紹介させていただきました。
必要に応じて、有益な情報でさらに更新していきたいと思います。
プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。
実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。
実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。
自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。
GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。
Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓
ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。
コメント