Полное руководство по указанию параметров функций меню в скриптах Google Sheets

Скрипты Google Таблиц предоставляют мощные возможности автоматизации, позволяющие повысить производительность и оптимизировать рабочие процессы. Одним из важных аспектов создания сценариев является создание функций меню, доступ к которым можно получить непосредственно из пользовательского интерфейса Google Sheets. В этой статье мы рассмотрим различные методы указания параметров функций меню в скриптах Google Sheets, а также приведем примеры кода.

Метод 1: использование подсказки пользовательского интерфейса
Вы можете использовать метод Browser.inputBox(), чтобы запросить у пользователя вводимые значения. Вот пример:

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
    .addItem('Function with Parameters', 'functionWithParameters')
    .addToUi();
}
function functionWithParameters() {
  var userInput = Browser.inputBox('Enter a value:');
  // Process the user input
}

Метод 2: использование диалоговых окон
Вы можете использовать диалоговые окна для отображения пользовательских форм для ввода параметров. Вот пример использования SpreadsheetApp.getUi().showModalDialog():

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
    .addItem('Function with Parameters', 'functionWithParameters')
    .addToUi();
}
function functionWithParameters() {
  var htmlOutput = HtmlService.createHtmlOutputFromFile('parameterForm')
    .setWidth(300)
    .setHeight(200);
  SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Parameter Input');
}
// parameterForm.html
<form>
  Input: <input type="text" name="inputValue" id="inputValue">
  <input type="button" value="Submit" onclick="submitForm()">
</form>
<script>
  function submitForm() {
    var inputValue = document.getElementById('inputValue').value;
    google.script.run.processInput(inputValue);
    google.script.host.close();
  }
</script>

Метод 3: использование активной ячейки в качестве параметра
Вы можете использовать текущую активную ячейку на листе в качестве параметра. Вот пример:

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
    .addItem('Function with Parameters', 'functionWithParameters')
    .addToUi();
}
function functionWithParameters() {
  var activeCell = SpreadsheetApp.getActiveRange();
  var value = activeCell.getValue();
  // Process the active cell value
}

Метод 4: использование настраиваемых полей ввода
В Google Sheets можно создавать собственные поля ввода. Вот пример использования SpreadsheetApp.getUi().prompt():

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
    .addItem('Function with Parameters', 'functionWithParameters')
    .addToUi();
}
function functionWithParameters() {
  var response = SpreadsheetApp.getUi().prompt('Enter a value:', SpreadsheetApp.getUi().ButtonSet.OK_CANCEL);
  if (response.getSelectedButton() === SpreadsheetApp.getUi().Button.OK) {
    var inputValue = response.getResponseText();
    // Process the input value
  }
}

Указание параметров функций меню в скриптах Google Sheets позволяет повысить функциональность и интерактивность вашей электронной таблицы. В этой статье мы рассмотрели несколько методов, в том числе использование подсказок пользовательского интерфейса, диалоговых окон, активных ячеек и настраиваемых полей ввода. Используя эти методы, вы можете создавать динамичные и удобные сценарии для автоматизации задач в Google Таблицах.