Google Apps Script入門
入力規則

Google Apps Script(GAS)の入門解説です
公開日:2016-12-13 最終更新日:2016-12-13

第31回.入力規則

Google Apps Script で、スプレッドシートに入力規則を設定します、


入力規則は機能がとても多く、それにメ対応したソッドも多数あります。

ここでは、メソッドの一覧と、代表的な使い方を参考スクリプトを掲載します。


入力規則の作成方法の概要

クラスSpreadsheetAppのメソッドnewDataValidationで入力規則のビルダDataValidationBuilderを作成します。
DataValidationBuilderの各種メソッドを使い、各種の入力規則を作成しておきます。
クラスRangeの、メソッドsetDataValidationで作成済のルールをそのセルに適用します。
入力規則は上書きされないので、setDataValidationに先立って、メソッドclearDataValidationsで入力規則を消去しておくようにします。


newDataValidationのメソッド



方法 簡単な説明
build() ビルダーに適用された設定から、データ検証ルールを構築します。
copy() このルールの設定に基づいて、データ検証ルールのためのビルダーを作成します。
getAllowInvalid() 返しtrueルールが入力データの検証に失敗したときに警告が表示されている場合、またはfalseそれが完全に入力を拒否した場合。
getCriteriaType() で定義されているルールの基準タイプを取得DataValidationCriteria列挙。
getCriteriaValues() ルールの基準の引数の配列を取得します。
getHelpText() ルールのヘルプテキストを取得、またはnull全くヘルプテキストが設定されていない場合。
requireDate() 日付を必要とするデータ検証ルールを設定します。
requireDateAfter(date) 指定された値の後の日付を必要とするデータ検証ルールを設定します。
requireDateBefore(date) 指定された値の前の日付を必要とするデータ検証ルールを設定します。
requireDateBetween(start,end) 値そのものを含めて指定した値の間の日付を、必要とするデータ検証ルールを設定します。
requireDateEqualTo(date) 指定された値に等しい日付を必要とするデータ検証ルールを設定します。
requireDateNotBetween(start,end) 値そのものを含めない与えられた値の間の日付を、必要とするデータ検証ルールを設定します。
requireDateOnOrAfter(date) 上または指定された値の後の日付を必要とするデータ検証ルールを設定します。
requireDateOnOrBefore(date) 上または指定された値の前の日付を必要とするデータ検証ルールを設定します。
requireFormulaSatisfied(formula) 与えられた式は、と評価されていることを必要とするデータ検証ルールを設定しますtrue。
requireNumberBetween(start,end) 値そのものを含めて与えられた値の間の数を、必要とするデータ検証ルールを設定します。
requireNumberEqualTo(number) 指定された値に等しい数を必要とするデータ検証ルールを設定します。
requireNumberGreaterThan(number) 指定された値よりも大きい数を必要とするデータ検証ルールを設定します。
requireNumberGreaterThanOrEqualTo(number) 指定された値以上の数を必要とするデータ検証ルールを設定します。
requireNumberLessThan(number) 指定された値よりも少ない数を必要とするデータ検証ルールを設定します。
requireNumberLessThanOrEqualTo(number) 指定された値以下の数値を必要とするデータ検証ルールを設定します。
requireNumberNotBetween(start,end) 値そのものを含めない与えられた値の間の数を、必要とするデータ検証ルールを設定します。
requireNumberNotEqualTo(number) 指定された値と等しくない数を必要とするデータ検証ルールを設定します。
requireTextContains(text) 入力が与えられた値が含まれていることを必要とするデータ検証ルールを設定します。
requireTextDoesNotContain(text) 入力が与えられた値が含まれていないことを必要とするデータ検証ルールを設定します。
requireTextEqualTo(text) 入力が与えられた値に等しいことを必要とするデータ検証ルールを設定します。
requireTextIsEmail() 入力は、電子メールアドレスの形式であることを必要とするデータ検証ルールを設定します。
requireTextIsUrl() 入力はURLの形式であることを必要とするデータ検証ルールを設定します。
requireValueInList(values) 入力が与えられた値の1に等しいことを必要とするデータ検証ルールを設定します。
requireValueInList(values,showDropdown) 入力は、ドロップダウンメニューを非表示にするオプションを使用して、与えられた値の1に等しいことを必要とするデータ検証ルールを設定します。
requireValueInRange(range) 入力が与えられた範囲内の値に等しいことを必要とするデータ検証ルールを設定します。
requireValueInRange(range,showDropdown) 入力は、ドロップダウンメニューを非表示にするオプションを使用して、与えられた範囲内の値に等しいことを必要とするデータ検証ルールを設定します。
setAllowInvalid(allowInvalidData) 入力データの検証に失敗した場合、または完全に入力を拒否するか、警告を表示するかどうかを設定します。
setHelpText(helpText) ユーザーがデータ検証が設定されているセルの上に置いたときに示すヘルプテキストを設定します。
withCriteria(criteria,args) 定義された基準要求するデータ検証ルールを設定しますDataValidationCriteria列挙型を。

翻訳したものなので、若干日本語がおかしい点があると思います。
太字は、この下のサンプルがあるメソッドになります。


数値の1~12のみ入力

function mySample31_1() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rule = SpreadsheetApp.newDataValidation();
  rule.requireNumberBetween(1, 12);
  rule.setAllowInvalid(false);
  sheet.getRange(2, 1).clearDataValidations();
  sheet.getRange(2, 1).setDataValidation(rule);
}
var rule = SpreadsheetApp.newDataValidation()
これで、入力規則のビルダDataValidationBuilderを作成します。

rule.requireNumberBetween(1, 12)
1~12の数値の入力規則を作成

rule.setAllowInvalid(false)
無効な入力データの場合に、入力を拒否にしています。
規定値はtrueですので、ここでfalseを設定しない場合は、警告が表示されるだけになります。

sheet.getRange(2, 1).clearDataValidations()
入力規則を消去しています。

sheet.getRange(2, 1).setDataValidation(rule)
A2セルに、作成済の入力規則のルールをセルにせていしています。


ドロップダウンリストの入力規則(定数リストを使用)

function mySample31_2() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rule = SpreadsheetApp.newDataValidation();
  rule.requireValueInList(["A","B","O","AB"], true);
  sheet.getRange(2, 2).clearDataValidations();
  sheet.getRange(2, 2).setDataValidation(rule);
}
requireValueInList(values, showDropdown)
values
リストの値を配列で指定します。

showDropdown
ドロップダウンを表示する場合はTrue、表示しない場合はfalse
省略形として、
showDropdown(values)
この場合は、ドロップダウンが表示されますので、上記のサンプルの場合は省略しても同じになります。
var rule = SpreadsheetApp.newDataValidation()
これで、入力規則のビルダDataValidationBuilderを作成します。

rule.requireValueInList(["A","B","O","AB"], true)
これで、A,B,O,ABのリストを作成し、ドロップダウンの表示を指定しています。

sheet.getRange(2, 2).clearDataValidations()
入力規則を消去しています。

sheet.getRange(2, 2).setDataValidation(rule)
B2セルに、作成済の入力規則のルールをセルにせていしています。


ドロップダウンリストの入力規則(セル範囲をリストとして使用)

function mySample31_3() {
var sheet = SpreadsheetApp.getActiveSheet();
var rule = SpreadsheetApp.newDataValidation();
rule.requireValueInRange(sheet.getRange(1, 6, 7, 1));
sheet.getRange(2, 3).clearDataValidations();
sheet.getRange(2, 3).setDataValidation(rule);
}
requireValueInRange(range, showDropdown)
range
リストとして使うセル範囲を指定します。

showDropdown
ドロップダウンを表示する場合はTrue、表示しない場合はfalse
省略した場合は、trueを指定した場合と同じにドロップダウンが表示されます。
var rule = SpreadsheetApp.newDataValidation()
これで、入力規則のビルダDataValidationBuilderを作成します。

rule.requireValueInRange(sheet.getRange(1, 6, 7, 1))
これで、F1~F7セルの範囲をリストとして設定しています。
showDropdownを省略していますので、ドロップダウンが表示されます。

sheet.getRange(2, 3).clearDataValidations()
入力規則を消去しています。

sheet.getRange(2, 3).setDataValidation(rule)
C2セルに、作成済の入力規則のルールをセルにせていしています。


入力規則は、データ入力の際の間違い防止に効果的です。
入力後にチェックをするより、入力時に制限を設けておいた方が良いことは当然です。
また、規則を設定することで、入力時の表記ゆれ(入力値の僅かな違い)の防止には非常に効果的です。


まずは、シートに事前に設定しておく事になりますが、
自動拡張(データの増減に対応)させるようにするには、スクリプトで対応する必要も出てきます。
入力規則は、是非活用したい機能ですので、しっかり覚えておきましょう。



同じテーマ「Google Apps Script入門」の記事

第28回.リンクの挿入・編集・削除
第29回.メモの挿入・削除と改行文字
第30回.並べ替え
第31回.入力規則
第32回.グラフ
第33回.表示の固定
第34回.シート保護
第35回.スプレッドシートが非常に遅い、高速化するには
第36回.フォルダとファイルを扱う(DriveApp)
第37回.フォルダの一覧取得・作成・削除(Folder)
第38回.ファイルの一覧取得・削除(File)


新着記事NEW ・・・新着記事一覧を見る

カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ