wps宏编辑器API关于msgbox和inputbox的使用说明

news2025/1/12 15:42:38

WPS宏编辑器API参考关于函数列举了3个:DoEvents、InputBox和MsgBox,其中DoEvents有点不好理解,应该在什么场景下使用也缺乏官网指导说明,因此本文重点讲述InputBox和MsgBox的使用说明。

1、DoEvents

处理进程的消息队列中的消息。
DoEvents 将暂时停止当前的宏执行,在处理完进程的消息队列中的消息后返回再继续宏的执行。

function abcd()
{
	var beginTime = new Date();
	for (i = 0; i < 20000; i++) 
	{
		Selection.TypeText("金山办公软件");
		if (i % 1000 == 0)
			DoEvents()
	}
	var endTime = new Date();
	Debug.Print("用时共计"+(endTime-beginTime)+"ms");	
}

此示例使用 DoEvents 函数来使得每迭代 1000 次循环就将暂时停止当前的宏执行,处理完进程的消息队列中的消息后返回再继续宏的执行,以便迭代过程中在合适的时机更新文档视图或者响应鼠键消息来通过调试器中止迭代。

上述为wps开放平台关于DoEvents的描述,确实比较晦涩难懂,使用频率较低,因此不做详细讲解,只是给大家3个建议:

  • 官方案例的代码是基于word宏编辑器的,因此用excel表格宏编辑器执行案例代码会报错:TypeText是一个未定义的函数;
  • DoEvents可以等同理解sleep(0),sleep函数相信写过多线程的很熟悉;
  • 遇到js宏执行很卡的时候,不妨试用DoEvents看看效果;

2、InputBox

弹出显示自定义提示信息的输入对话框,等待用户在输入框中输入文本或单击按钮,然后返回输入框的内容。

1)语法

InputBox (prompt, [ title ], [ default ], [ xpos ], [ ypos ])

2)参数说明

名字说明
prompt必需项。 在对话框中显示的消息的字符串表达式。
title可选。 对话框标题栏中显示的字符串表达式。 如果省略 title,则标题栏中将显示应用程序名称。
default可选。 输入框默认值。
xpos可选。 指定对话框的左边缘与屏幕的左边缘的水平距离(以缇为单位)的数值表达式。 如果省略了 xpos,对话框将水平居中。
ypos可选。 指定对话框的上边缘与屏幕的顶部的垂直距离(以缇为单位)的数值表达式。 如果省略了 ypos,对话框将将垂直居中。

3)返回值

如果用户选择"确定 " 或按 Enter,InputBox 函数将返回文本框中的内容。 如果用户选择"取消 ", 函数将返回一个空字符串 。

4)案例

案例1:除prompt外,其他都是默认值

function inputBox1()
{
	var rst = InputBox("请输入姓名:");
	Debug.Print("name: " + rst + ", " + (rst == ''));
}

在这里插入图片描述
返回结果:

  • 点击确定时,返回张三
  • 点击取消时,返回空字符串
    在这里插入图片描述

案例2:设置输入框标题

function inputBox2()
{
	var rst = InputBox("请输入姓名:", "老马历写记");
	Debug.Print("name: " + rst + ", " + (rst == ''));
}

在这里插入图片描述


案例3:设置输入框默认值

function inputBox3()
{
	var rst = InputBox("请输入姓名:", "老马历写记", "我来也");
	Debug.Print("name: " + rst + ", " + (rst == ''));
}

在这里插入图片描述

3、MsgBox

弹出消息对话框,等待用户单击按钮,并返回一个整数,指示用户单击的哪个按钮。

1)语法

MsgBox (prompt, [ buttons, ] [ title, ] )

2)参数说明

名字说明
prompt必需项。 在对话框中显示的消息的字符串表达式。
button可选。 数值表达式,用于指定要显示按钮的数量和类型、要使用的图标样式、默认按钮的标识和消息框的形式的值(JSMsgBoxStyle)之和。 如果省略,则 buttons 的默认值为 0。
title可选。 对话框标题栏中显示的字符串表达式。 如果省略 title,则标题栏中将显示应用程序名称。

3)返回值

返回JSMsgBoxResult 枚举值。表示用户点击MsgBox弹出消息框的按钮。在点击MsgBox弹出消息框之前不会返回。如果对话框中显示“取消”按钮,按 ESC 键与单击“取消”具有相同的作用。

4)JSMsgBoxStyle枚举

名称说明
jsOKOnly0仅显示“确定”按钮。
jsOKCancel1显示“确定”和“取消”按钮。
jsAbortRetryIgnore2显示“中止”、“重试”和“忽略”按钮。
jsYesNoCancel3显示“是”、“否”和“取消”按钮。
jsYesNo4显示“是”和“否”按钮。
jsRetryCancel5显示“重试”和“取消”按钮。
jsCritical16显示“关键消息”图标。
jsQuestion32显示“警告查询”图标。
jsExclamation48显示“警告消息”图标。
jsInformation64显示“信息消息”图标。
jsDefaultButton10第一个按钮是默认按钮。
jsDefaultButton2256第二个按钮是默认按钮。
jsDefaultButton3512第三个按钮是默认按钮。
jsDefaultButton4768第四个按钮是默认按钮。
jsApplicationModal0应用程序模式;用户在继续在当前应用程序中工作前必须响应消息框。
jsSystemModal4096系统模式;在用户响应消息框前,所有应用程序都挂起。
jsMsgBoxHelpButton16384在消息框中添加“帮助”按钮。
jsMsgBoxSetForeground65536将消息框窗口指定为前景窗口。
jsMsgBoxRight524288文本右对齐。
jsMsgBoxRtlReading1048576指定文本在希伯来语和阿拉伯语系统中应从右到左显示。

5)JSMsgBoxResult 枚举

名称说明
jsOK1确定
jsCancel2取消
jsAbort3中止
jsRetry4重试
jsIgnore5忽略
jsYes6
jsNo7

6)案例

案例1:默认对话框,类似alert框

function msgbox1() {
	var rst = MsgBox("这是一个最简单的Msgbox框!");
	Debug.Print("rst= " + rst);
}

在这里插入图片描述

  • buttons参数省略,默认0(jsOKOnly),仅显示确定按钮。
  • 点击确定按钮,返回1
  • 点击对话框的x按钮,也返回1

案例2:是否选择框+问号提示

function msgbox2() {
	var msg = "该操作会持续几分钟,确定继续吗?";
	var buttons = jsOKCancel + jsQuestion + jsDefaultButton1
	var rst = MsgBox(msg, buttons);
	Debug.Print("rst= " + rst);
}

在这里插入图片描述

  • jsOKCancel 确定取消按钮
  • jsQuestion ,问号图标
  • jsDefaultButton1,默认选中第一个按钮,确定按钮
  • 返回结果,点击确定返回1(jsOK),点击取消返回2(jsCancel),具体请查看JSMsgBoxResult 枚举
  • 点击对话框的x按钮,返回2

案例3: 设置标题

function msgbox3() {
	var msg = "XX程序升级过程中发生异常,如需解决请执行下述操作:\n中止:结束程序;\n重试:再次升级;\n忽略:继续下一步";
	var title = "3个按钮演示";
	var buttons = jsAbortRetryIgnore + jsQuestion + jsDefaultButton3
	var rst = MsgBox(msg, buttons, title);
	Debug.Print("rst= " + rst);
}

在这里插入图片描述

  • 设置了标题:3个按钮演示;
  • 多行提示消息,使用\n进行换行;
  • 使用了3个按钮
  • 对话框返回值:jsAbort(3), jsRetry(4), jsIgnore(5)
  • 点击对话框的x按钮,返回3

案例4:返回值如何使用
上文3个案例都提及了返回值,不管是点击了按钮或对话框的x按钮,都会有返回值,那么基于返回值一般我们作何处理呢?

function msgbox2() {
	var msg = "该操作会持续几分钟,确定继续吗?";
	var buttons = jsOKCancel + jsQuestion + jsDefaultButton1
	var rst = MsgBox(msg, buttons);
	Debug.Print("rst= " + rst);
	if (rst == 1) {
		Debug.Print("点击了,确定按钮");
	} else {
		Debug.Print("点击了,取消或关闭按钮");
	}
}
  • 点击了确定按钮,执行Debug.Print(“点击了,确定按钮”)输出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/436137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI菜鸡浅谈ChatGpt

最近最火的话题可能就是Chatgpt &#xff0c;这个对话机器人横空出世&#xff0c;大大突破了人类之前对AI 对话机器人的认知和预期&#xff0c;上次这样的颠覆认知的突破还是7年前的阿法狗&#xff0c;但是这一次Chatgpt 带来的革命可能要更深远。我从以下几个方面来谈一下我对…

Centos7.6集群部署海豚调度3.1.5

目录 前置准备工作&#xff08;所有机器&#xff09;主机规划数据库规划用户规划目录规划配置/etc/hostsjdk安装进程树分析配置ssh免密部署zookeeper启动zookeeper下载DolphinScheduler 二进制包修改install_env.sh配置修改dolphinscheduler_env.sh配置文件 安装&#xff08;ty…

virtualbox 安装centos

在virtualbox安装centos时&#xff0c;遇到了一些问题&#xff0c;此处记录下&#xff0c;希望可以帮助一些小伙伴。 一、下载centos 进入官网下载地址&#xff1a;Download (centos.org) 然后选择阿里云镜像地址&#xff1a;centos-7.9.2009-isos-x86_64安装包下载_开源镜像…

TensorFlow版本与其他库的版本之间问题

使用TensorFlow的版本不一样&#xff0c;对应的库的版本也需不一样&#xff0c;这个有许多需要注意的地方。 比如Keras库&#xff0c; 当我使用tensorflow2.1.0版本时&#xff0c;安装Keras2.10.0这个库会导致运行报错&#xff0c; 那么就需要降低其版本到与之匹配&#xff…

AQS 和CAS详解

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;JDBC事务 Hibernate事务 EJB事务详解 ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;30分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你…

初识Linux篇

初识Linux篇 Linux环境的搭建1.什么是Linux2.Linux环境的安装云服务器Linux安装 总结 Linux环境的搭建 &#x1f60a;首先&#xff0c;在学习Linux之前&#xff0c;先了解一下Linux&#x1f60a; 1.什么是Linux Linux是一种操作系统软件&#xff0c;就像手机中的安卓&#xff…

Vue中的导航守卫

router官网-导航守卫 导航守卫常用的主要有三种&#xff1a;全局前置守卫(beforeEach)、路由独享守卫(beforeEnter)、组件内守卫(beforeRouteEnter) 路由独享守卫 在路由配置上直接定义 beforeEnter 守卫 <body> <div id"app"><h1>欢迎使用路由&l…

在没有魔法的情况下,如果让ChatGPT帮我们写代码

ChatGPT写代码 ✋ChatGPT 是一个基于人工智能的自然语言处理模型&#xff0c;可以帮助程序员更高效地、更自然地与计算机交互。ChatGPT 可以解决程序员在日常开发中遇到的各种问题&#xff0c;例如语法错误、API 使用、代码实现、架构设计等等。 &#x1f4a5;通过与 ChatGPT…

操作系统1(什么是操作系统、程序和编译器)

1.什么是操作系统&#xff1f; 1.什么是操作系统&#xff1f; 对单一计算机硬件系统做出抽象、支撑程序执行的软件系统。通过“虚拟化”硬件资源为程序运行提供服务的软件。 操作系统可以访问任何硬件资源。 2.什么是程序&#xff1f; 程序就是一个状态机。 程序计算sysc…

面了十几家公司测试岗,我终于悟了,面试无非就是这些题

测试岗的面试其实都是大同小异的&#xff0c;这里我收集整理了185道高频面试题&#xff0c;希望对在找工作或者准备跳槽的各位小伙伴有所帮助&#xff01; 一. 测试基础 1.如何制定测试计划 参考答案&#xff1a; 测试计划包括测试目标、测试范围、测试环境的说明、测试类型…

SpringBoot 实现多个子域共享 cookie

SpringBoot 实现多个子域共享 cookie 项目信息cookie 共享需求如何实现 环境配置配置域SpringBoot 配置 https 访问 后端代码验证验证后端解析 cookie 项目信息 使用SpringBoot web框架&#xff0c;版本号 2.7.10 <dependency><groupId>org.springframework.boot&…

Ambari 操作HDP组件迁移

目录 ​ 一、集群信息 1.1 HDP版本信息 1.2 服务器信息 二、服务迁移操作 一、集群信息 1.1 HDP版本信息 1.2 服务器信息 角色 IP 组件 hdp103 192.168.2.152 NameNode hdp104 192.168.2.153 新 NameNode hdp105 192.168.2.154 旧NameNode 二、服务迁移操作 我…

6、苹果签名原理

一、iOS应用签名原理 代码签名双层代码签名描述文件 1.1 代码签名 代码签名是对可执行文件或脚本进行数字签名,用来确认软件在签名后未被修改或损坏的措施. 和数字签名原理一样,只不过签名的数据是代码. 1.1.1 简单的代码签名 - 在iOS出来之前,以前的主流操作系统(Mac/Win…

自动控制原理模拟卷5

自动控制原理模拟题五 Question1 液位自动控制系统原理示意图如下图所示,在任意情况下,希望液面高度 c c c维持不变,说明系统工作原理并画出系统方块图。 解: 当电位器电刷位于中点位置时,电动机不动,控制阀门有一定的开度,使水箱中流入水量与流出水量相等,从而液面保…

C6678-缓存和内存

C6678-缓存和内存 全局内存映射扩展内存控制器&#xff08;XMC&#xff09;-MPAX内存保护与地址扩展使用例程缓存 全局内存映射 扩展内存控制器&#xff08;XMC&#xff09;-MPAX内存保护与地址扩展 每个C66x核心都具有相同大小的L1和L2缓存&#xff0c;并且可配置为普通内存使…

【微信小程序-原生开发】实用教程21 - 分包

分包的流程 当微信小程序主包大小超过2M时&#xff0c;则需要对微信小程序进行分包&#xff0c;方法如下&#xff1a; 1. 转移页面文件 在项目根目录下&#xff0c;新建文件夹 package1 &#xff08;即自定义的分包名为 package1 &#xff09;文件夹 package1 内新建文件夹 p…

C嘎嘎~~【初识C++ 中篇】

初识C 中篇 1.缺省参数2.函数重载2.1函数重载的概念2.2函数重载的原理 3.auto关键字3.1类型别名思考&#xff08;typedef&#xff09;3.2auto的简介3.3auto的使用规则3.4 auto不能推导的场景 4.基于范围的for循环4.1范围for的语法4.2范围for的使用条件 1.缺省参数 缺省参数是 声…

02_2440soc_内存地址映射和选择,寄存器地址的选择

大多数arm芯片从0开始启动 nand_flash控制器外接nand_flash 256M cpu直接接nor_flash 2M nor_flash启动时候 nor_flash上面烧了bin文件 nor_flash基地址为0 cpu直接读nor上的第一个指令(前4字节),执行 cpu继续读取其他指令 执行 如果使用nor启动,片内的sram的地址就是 0x4000…

实战:内存分配与回收策略

java技术体系的自动内存管理&#xff0c;最根本的目标是自动化地解决两个问题&#xff1a;自动给对象分配内存以及自动回收分配给对象的内存。 1 前置知识 1.1 Minor GC 与Full GC Minor GC: 新生代GC&#xff0c;是指发生新生代的垃圾收集动作。Minor GC非常频繁&#xff0…

mac m1安装stable-diffusion

安装stable-diffusion 安装Homebrew安装python及其他依赖下载model安装Stable-Diffusion-WebUI执行./webui.sh作图http://127.0.0.1:7860 安装Homebrew 查询是否安装 brew -v安装 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.…