脚本可以通过添加用户界面元素来扩展某些 Google 产品,这些元素在被点击时会执行 Apps 脚本函数。最常见的示例是 在 Google 文档、表格、幻灯片 或表单,但也可以通过点击图片和表单来触发脚本函数, Google 表格中的绘图。
Google 文档、表格、幻灯片或表单中的自定义菜单
Apps 脚本可以在 Google 文档、表格、幻灯片、 或表单 将每个菜单项与脚本中的某个函数相关联。(在 Google 表单中,只有打开表单进行修改的编辑者才能看到自定义菜单,而打开表单进行回复的用户则看不到。)
只有在满足以下条件时,脚本才能创建菜单:
绑定到文档、电子表格或表单。
要在用户打开文件时显示菜单,请在
onOpen()
函数。
以下示例展示了如何添加 menu
后跟一个
视觉分隔符,然后添加一个
子菜单,其中包含
另一个项目。(请注意,在 Google 表格中,除非您使用的是新版本,否则必须改用 addMenu()
语法,并且无法使用子菜单。)如果用户选择
相应的函数会打开一个
alert 对话框。有关
您可以打开哪些类型的对话框,请参阅
对话框和边栏指南。
function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp, SlidesApp or FormApp.
ui.createMenu('Custom Menu')
.addItem('First item', 'menuItem1')
.addSeparator()
.addSubMenu(ui.createMenu('Sub-menu')
.addItem('Second item', 'menuItem2'))
.addToUi();
}
function menuItem1() {
SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp or FormApp.
.alert('You clicked the first menu item!');
}
function menuItem2() {
SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp or FormApp.
.alert('You clicked the second menu item!');
}
文档、电子表格、演示文稿或表单只能包含一个带有
。如果同一个脚本或其他脚本
名称,新菜单将替换旧菜单。文件时,无法移除菜单
处于打开状态,但您可以编写 onOpen()
函数来跳过
如果设置了某个属性,则会发生以下情况。
Google 表格中可点击的图片和绘图
您还可以为 Google 表格中的图片或绘图分配 Apps 脚本函数, 但前提是此脚本已绑定到 电子表格。以下示例展示了如何进行此设置。
- 在 Google 表格中,依次选择扩展程序 > Apps 脚本,创建绑定到电子表格的脚本。
删除脚本编辑器中的所有代码,然后粘贴以下代码。
function showMessageBox() { Browser.msgBox('You clicked it!'); }
返回 Google 表格,然后选择插入图片或绘图 插入 >图片或插入 >绘图。
插入图片或绘图后,点击相应图片或绘图。一个小型下拉菜单 选择器。点击并选择 分配脚本。
在显示的对话框中,输入 Apps 脚本函数的名称。 不带括号(在本示例中为
showMessageBox
)。 点击确定。再次点击该图片或绘图。现在,该函数即会执行。