分享免费的编程资源和教程

网站首页 > 技术教程 正文

JSA宏教程——应用程序(Application)对象事件

goqiw 2025-04-27 13:41:58 技术教程 26 ℃ 0 评论

事件,在JSA中是一项非常重要的一块。用户的每一次操作都是一个事件,比如:

选中一个单元格或单元格区域;切换到另外一个工作表;关闭工作簿;点击一个单元格等等。。这些都是事件,JSA系统都会对这些事件进行监听,当事件发生时,会产生点什么结果。

当我们为这个事件发生时要产生的结果编个程序,那么事件发生的时候就会按这个程序执行。。

事件让程序的运行显得智能化了。

JSA宏教程中有事件的对象模型就三个:Application对象、Workbook对象、WorkSheet对象。

接下来几期里,我们将陆续熟悉这几个对象的事件:

Application对象的事件列表:

可以看到,在上图中,Application对象因为是顶层对象,它拥有了workbook对象的事件、worksheet对象的事件、还有几个关于window窗口的事件,以及最后的文档主题变化的事件。也就是在WPS表格里,Application作为顶层对象,它拥有它的子对象事件。只不过,在顶层对象中对子对象事件的撑控的视野与子对象自身是不一样的。

事件简单介绍

1、Workbook相关的事件:

包含了:工作簿的新建、打开、关闭、打印、保存、失去焦点、获得焦点、创建新工作表、创建新图表这些

2、workSheet相关的事件:

包含了:工作表的失去焦点、获得焦点、删除前、双击前、右击前、工作表计算、工作表切换、选择区改变、超链接跟踪等等

3、Window相关的事件

包含:窗口失去焦点、获得焦点、改变大小

4、文档相关的事件

文档主题改变事件

练习

练习1、关于工作簿事件的练习。

分别练习工作簿的打开、新建、新建工作表、保存、关闭、失焦、获焦这几个事件:

/*
练习1、关于工作簿事件的练习。
分别练习工作簿的打开、新建、新建工作表、保存、关闭、失焦、获焦这几个事件
*/
//打开工作簿
function Application_WorkbookOpen(wk)
{
	alert(`工作簿被打开了:打开的工作簿名称是${wk.Name}`);
}

//新建工作簿
function Application_NewWorkbook()
{
	alert('新建了一个工作簿');
}
//新建工作表
function Application_WorkbookNewSheet(Wb, Sh)
{
	alert(`在${Wb.Name}工作簿中新建了一个工作表${Sh.Name}`);
}
//保存工作簿
function Application_WorkbookAfterSave(Wb, Success)
{
	let r = Success ? "成功":"失败";
	alert(`${Wb.Name}工作簿保存${r}`);
}
//关闭工作簿
function Application_WorkbookBeforeClose(Wb, Cancel)
{
	alert(`${Wb.Name}工作簿正在关闭`);
}
//工作簿获焦
function Application_WorkbookActivate(Wb)
{
	alert(`${Wb.Name}工作簿获得了焦点`);
}
//工作簿失焦
function Application_WorkbookDeactivate(Wb)
{
	alert(`${Wb.Name}工作失去了焦点`);
}

一个关闭事件,引发两个事件。


练习2、关于工作表事件的练习。

分别练习工作表的切换、删除、选择区改变、双击、失焦、获焦这几个事件

/*
练习2、关于工作表事件的练习。
分别练习工作表的切换、删除、选择区改变、双击、失焦、获焦这几个事件	
*/

function Application_SheetChange(Sh, rg)
{
	alert(`选中了${Sh.Name}工作表`);
}


function Application_SheetBeforeDelete(Sh)
{
	alert(`删除了${Sh.Name}工作表`);
}


function Application_SheetBeforeDoubleClick(Sh, rg, cancel)
{
	alert(`双击了${Sh.Name}工作表中的${rg.Address()}区域`);
}


function Application_SheetActivate(Sh)
{
	alert(`${Sh.Name}获得焦点`);
}


function Application_SheetDeactivate(Sh)
{
	alert(`${Sh.Name}失去焦点`);
}

练习3、关于app窗口事件的练习。

分只是因为练习app窗口改变大小、失焦和获焦这几个事件。

/*
练习3、关于app窗口事件的练习。
分只是因为练习app窗口改变大小、失焦和获焦这几个事件。
*/

function Application_WindowActivate(Wb, Wn)
{
	alert(`${Wb.Name},${Wn.Caption}窗口获得焦点`);
}

function Application_WindowDeactivate(Wb, Wn)
{
	alert(`${Wb.Name},${Wn.Caption}窗口失去焦点`);
}

function Application_WindowResize(Wb, Wn)
{
	alert(`${Wb.Name},${Wn.Caption}窗口大小在改变`);
}

以上代码复制后即可运行。

小编的演示文档会保存起来,免费提供给大家学习,如有需要关注后私信说明要哪一章节的演示文档。

请注意:演示文档与小编的教程同步即是小编的教程到哪一步,演示文档就到哪一章节。

关注我,持续共同学习,一起踏上wps宏(JSA)的登山之路。

#头条创作挑战赛#

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表