With the introduction of scripts associated with documents, you can now make a function for selecting text, which is called from the user menu.
This script has been modified with this answer and can be called from the user interface (without parameters) or script.
/** * Find all matches of target text in current document, and highlight them. * * @param {String} target (Optional) The text or regex to search for. * See Body.findText() for details. * @param {String} background (Optional) The desired highlight color. * A default orange is provided. */ function highlightText(target,background) { // If no search parameter was provided, ask for one if (arguments.length == 0) { var ui = DocumentApp.getUi(); var result = ui.prompt('Text Highlighter', 'Enter text to highlight:', ui.ButtonSet.OK_CANCEL); // Exit if user hit Cancel. if (result.getSelectedButton() !== ui.Button.OK) return; // else target = result.getResponseText(); } var background = background || '#F3E2A9'; // default color is light orangish. var doc = DocumentApp.getActiveDocument(); var bodyElement = DocumentApp.getActiveDocument().getBody(); var searchResult = bodyElement.findText(target); while (searchResult !== null) { var thisElement = searchResult.getElement(); var thisElementText = thisElement.asText(); //Logger.log(url); thisElementText.setBackgroundColor(searchResult.getStartOffset(), searchResult.getEndOffsetInclusive(),background); // search for next match searchResult = bodyElement.findText(target, searchResult); } } /** * Create custom menu when document is opened. */ function onOpen() { DocumentApp.getUi().createMenu('Custom') .addItem('Text Highlighter', 'highlightText') .addToUi(); }
source share