How can I use a script to add a CheckBox to a Sheet?

This is probaly trivial but I could not find a single example online and the CheckBox class isn't even mentioned in the docs.

From the GUI, I would go Insert -> CheckBox.

Setting the value of the cell to either TRUE or FALSE doesn't work.

2 Answers 2


Short answer

Add the checkbox from the Google Sheets UI, then use one of the copyTo methods of Class Range.


NOTE: On April 19, 209 Google included on the Google Apps Script release notes the requireCheckbox method. See more details on my other answer.

The Google Apps Script Spreadsheet service doesn't include a methods for everything that could be done through the Google Sheets user interface. This is the case of the Insert > Checkbox which is a pretty new feature.

Even the Record macro feature can't do this. The following was recorded one momento ago

/** @OnlyCurrentDoc */

function InsertCheckbox() {
  var spreadsheet = SpreadsheetApp.getActive();
   * Added to show the missing Insert > Checkbox step
  spreadsheet.getRange('A1').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

NOTE: If you don't want to pass all the cell properties (borders, formulas, background, etc. instead of SpreadsheetApp.CopyPasteType.PASTE_NORMAL use SpreadsheetApp.CopyPasteType.PASTE_DATA_VALIDATION.

Related Q on Stack Overflow

  • Thanks, exactly what I needed and it works without issues. I figured it might be something realted to copying it, I hope there's gonna be a better way in the future as they improve the docs and the script service
    – Athamas
    Commented May 27, 2018 at 19:34
  • @Andrew : I think that you should post your edit suggestion as a new answer rather than a edit to this one. Commented Jul 20, 2018 at 1:07

Short answer

Use the undocumented method requireCheckbox

NOTE: On April 19, 209 Google included on the Google Apps Script release notes the requireCheckbox method.


function addCheckboxToA1() {
  var cell = SpreadsheetApp.getActive().getRange('A1');
  var criteria = SpreadsheetApp.DataValidationCriteria.CHECKBOX;
  var rule = SpreadsheetApp.newDataValidation()


The Apps Script IDE autocomplete feature shows several methods that aren't documented on https://developers.google.com/apps-script/. One of this methods is was requireCheckbox() which is shown as a newDataValidation() method.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.