第31回.入力規則
Google Apps Script で、スプレッドシートに入力規則を設定します、
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);
}
これで、入力規則のビルダDataValidationBuilderを作成します。
1~12の数値の入力規則を作成
無効な入力データの場合に、入力を拒否にしています。
規定値はtrueですので、ここでfalseを設定しない場合は、警告が表示されるだけになります。
入力規則を消去しています。
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);
}
リストの値を配列で指定します。
ドロップダウンを表示する場合はTrue、表示しない場合はfalse
省略形として、
showDropdown(values)
この場合は、ドロップダウンが表示されますので、上記のサンプルの場合は省略しても同じになります。
これで、入力規則のビルダDataValidationBuilderを作成します。
これで、A,B,O,ABのリストを作成し、ドロップダウンの表示を指定しています。
入力規則を消去しています。
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);
}
リストとして使うセル範囲を指定します。
ドロップダウンを表示する場合はTrue、表示しない場合はfalse
省略した場合は、trueを指定した場合と同じにドロップダウンが表示されます。
これで、入力規則のビルダDataValidationBuilderを作成します。
これで、F1~F7セルの範囲をリストとして設定しています。
showDropdownを省略していますので、ドロップダウンが表示されます。
入力規則を消去しています。
C2セルに、作成済の入力規則のルールをセルにせていしています。
入力規則は、データ入力の際の間違い防止に効果的です。
入力後にチェックをするより、入力時に制限を設けておいた方が良いことは当然です。
また、規則を設定することで、入力時の表記ゆれ(入力値の僅かな違い)の防止には非常に効果的です。
自動拡張(データの増減に対応)させるようにするには、スクリプトで対応する必要も出てきます。
入力規則は、是非活用したい機能ですので、しっかり覚えておきましょう。
同じテーマ「Google Apps Script入門」の記事
第28回.リンクの挿入・編集・削除
第29回.メモの挿入・削除と改行文字
第30回.並べ替え
第31回.入力規則
第32回.グラフ
第33回.表示の固定
第34回.シート保護
第35回.スプレッドシートが非常に遅い、高速化するには
第36回.フォルダとファイルを扱う(DriveApp)
第37回.フォルダの一覧取得・作成・削除(Folder)
第38回.ファイルの一覧取得・削除(File)
新着記事NEW ・・・新着記事一覧を見る
付録:AI×VBA実践リソース集|生成AI活用研究(2025-05-25)
おわりに:AI×VBAはあなたの未来を変える強力な武器|生成AI活用研究(2025-05-25)
第7章:さらなる高みへ!AI×VBA応用テクニックと未来への備え|生成AI活用研究(2025-05-24)
第6章:AIとVBAを学び続ける!あなたの「超効率化」を止めないヒント|生成AI活用研究(2025-05-22)
第5章:AI×VBAでつまづかない!トラブルシューティングとAIとの付き合い方
|生成AI活用研究(2025-05-21)
第4章:【事例で学ぶ】AIとVBAでExcel作業を劇的に効率化する!
|生成AI活用研究(2025-05-20)
第3章:AIを「自分だけのVBA先生」にする!質問・相談の超実践テクニック|生成AI活用研究(2025-05-19)
第2章 VBAって怖くない!Excelを「言葉で動かす」(超入門)|生成AI活用研究(2025-05-18)
第1章:AIって一体何?あなたのExcel作業をどう変える?(AI超基本)|生成AI活用研究(2025-05-18)
AI時代のExcel革命:AI×VBAで“書かない自動化”超入門|生成AI活用研究(2025-05-17)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.ひらがな⇔カタカナの変換|エクセル基本操作
6.RangeとCellsの使い方|VBA入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.FILTER関数(範囲をフィルター処理)|エクセル入門
10.条件分岐(Select Case)|VBA入門
- ホーム
- その他
- Google Apps Script入門
- 入力規則
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。