随笔分类 - Office 自动化(VBA与JSA)
Excel、Word、PowerPoint VBA/JSA
摘要:一、与 VBA 窗体的差异 WPS JSA 也提供了用户窗体,用户也可以通过拖控件的方式,制作自己的对话框,以完成宏编程中的交互任务。 但它与 VBA 中的用户窗体有很大的不同: 界面与事件逻辑分离,界面元素的绘制是一个模块,事件逻辑放在之外的模块,不是嵌入到窗体界面模块的。 界面元素的 Name
阅读全文
摘要:JS 语言的动态性,使我们能够修改对象乃至类型的成员,主要有两种方式: 对 __proto__/prototype 进行操作,修改原型对象; 使用代理 Proxy 对对象进行一次封装,返回包装后的代理对象给用户使用 一、通过修改原型对象 /*增删改 Excel 对象的成员样例*/ class Mod
阅读全文
摘要:一、简介 从 WPS 2021 版本开始,WPS 正式支持使用 JS 作为宏语言,官方称 JSA(报错时,用得就是这个名称),亦即 JS for Application 的缩写。 根据官方文档(https://open.wps.cn/docs/office)中的介绍,WPS 内嵌了一个 V8 引擎的
阅读全文
摘要:linq.js 是一个开源的包,我下载自 https://github.com/mihaifm/linq,大家如果需要可由此地下载,其代码如下: 1 /* 2 * linq.js - LINQ for JavaScript 3 * licensed under MIT License 4 * */
阅读全文
摘要:下面我们通过一个例子,来了解一下日常宏编程中最常面临的任务: 注意:因为使用了全局表达式,请将【工具】》【选项】》【编译】》【禁止全局作用域表达式】取消勾选 1 /*提供一些表格相关的工具函数与常数*/ 2 const XLS = { 3 //数据有效性类型枚举 Range.Validation.A
阅读全文
摘要:下面我们通过一示例,来了解一下最常打交道的 Range 对象: 1 /*关于[单元格区域(Range)]对象的测试*/ 2 function Range_Test() { 3 {//1.Range 对象的获取 4 let rangePathPrinter = rng => Console.log('
阅读全文
摘要:一、支持大部分 ES6 特性 1.class 下面是关于 ES6 引入的经典类的试验代码: 1 /*参数类型异常 :用于封装参数类型异常信息*/ 2 class ParameterTypeError extends Error { 3 constructor(paramName, paramType
阅读全文
摘要:Public Sub COM_MSForms_Class_DataObject_Test() ''MSForms.DataObject对象,可以用来沟通VBA工程内各模块数据,其上可以存储各种格式的文本,格式名必须是 '' 整数或字符串: ''1.DataObject.GetText([format])从DataObject对象中,取得储存的某格式文本,如省略forma...
阅读全文
摘要:看过很多人写的VBA代码,一团一团的,一点规划都没有,为了VBA编程更具工程性,这里讨论一下,并列出自己的一些建议:0.给VBA工程定义一个名字,而非直接使用默认的名称——"VBAProject",以方便以后可能要进行的跨VBA工程编码1.定义一个命名为“O”的标准模块【拼音中“O”字母的读音,意指
阅读全文

浙公网安备 33010602011771号