乔山办公网我们一直在努力
您的位置:乔山办公网 > word文档 > wps中vba编程代码翻译_wps中vba编程代码翻译

wps中vba编程代码翻译_wps中vba编程代码翻译

作者:乔山办公网日期:

返回目录:word文档

VBA是脚本语言吗?


正好笔者有几篇关于这个主题的讨论,索性就再总结一下,希望给读者朋友们一个更客观的视角。

一、什么是脚本语言

学术界将『为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言』称之为脚本语言(Script languages)。

其中编写和运行不能省,也省不掉,那就只能在编译和链接环节省。但脚本最终也是由机器执行,所以总有一个源码到机器码的过程,所以编译还是有的,也省不掉的。所以说,产品没有链接环节的编程语言,就是学术意义上的脚本语言。

二、有哪些常见的误解?

很多人,习惯将解释机制的编程语言称之为脚本语言,其实是不准确的。解释机制,虽然普遍为脚本所采纳,但并非脚本独有。比如JAVA,它不仅有源码到字节码的虚拟机伪指令编译过程,更有打包过程。比如C#/VB.NET,还有变态的二进制编译机制。

更有甚者,按源码存在的形态,发挥作用的方式来确定是否为脚本,显然过于粗暴。比如,大家熟悉的VBA,网络上能够看得到的,几乎都认为这是一种脚本语言。

三、为何VBA不算脚本语言?

认为VBA是脚本的,大抵是因为它可以录制宏,而且也无法脱离Office环境,运行时不需要编译和链接。初看,的确像那么回事。毕竟宏语言就是脚本语言的重要分支,既然VBA至少是宏语言,那VBA是脚本语言,没毛病啊。但事实上,VBA只是统一了Office的宏语言,也就是通过VBA的语法形式兼容原有宏功能,而Office真正的宏功能,依然被保留着,只是大家很少用了而已,相信用过的朋友是清楚的。

VBA采用了解释机制,而且提供了强大的逐句解释功能,所以运行时不需要编译和链接,完全也是可以的。但并不意味着,VBA就没有编译和链接功能,相反编译和链接是提升VBA性能中,最低门槛的方法。在早期的Office专业版中,微软官方提供了VBA的编译链接工具,不知道的朋友可关注BtOfficer相关文章,也可搜索相关主题。所以,VBA是拥有完整的编写、编译、链接和运行环节的传统独立开发工具。不能脱离Office环境的说法,就不攻自破了,不然VBA是如何授权给AutoCAD,WPS等一众软件商的呢?

VBA不脱离Office环境,主要还是因为便捷。大家都知道,Office从03之前的二进制格式,到现在的OpenXML格式,Office的VBA源码始终是以复合文档格式存储的。而复合文档中,比如Excel中包括工作簿/工作表/VBA工程加密,都仅仅是防止随意修改,因此Office自带的加密体系都很脆弱。很多人抱怨微软为何不弄个强加密,提升Office用户文件的安全性。对于Office而言,容易的编辑环境,是便捷的重要组成形式,提供强加密只会破坏这种便捷性,更何况这对Office本身的安全性并无影响。VBA以源码形态存储,并最终使用逐行解释,就是在贯彻这一思想。

VBA不脱离Office环境,其次是因为定制的某些特性,需要上下文环境。比如在VBA中可以在工作表模块中使用[a1]来代表A1单元格对象及其默认属性,但是其他使用Office对象接口的开发工具,就不能这么干。VBA的代码执行可以实时反馈到Office的操作UI上面,使得VBA代码的编写、调试和运行之间关系更加紧凑直接,沉浸式体验非常好。这是脱离Office的开发工具,很难有的体会。

VBA不脱离Office环境,以闭源著称的微软,真的不知道开源的好处么?VBA以源码形式存储,和可有可无的加密,其实就是变相构建自己的开源生态。想想,为什么地球上有那么多围绕VBA的生意?即便VBA已经比很多人都要老,自媒体时代,还是有大量围绕VBA的话题?

总之,VBA兼容宏功能,具有脚本语言的特征。同时,VBA可以通过编译链接成可执行文件,而脱离Office环境,是一款独立开发工具。但是,因为微软Office的产品定位,VBA又不得不回到源码存储,逐行解释执行的独有方式上来。这便是VBA本来的样子!

更多论述,详见:

1、居然还有不少人认为VB/VBA是脚本语言,偏见害人啊!

2、什么是脚本语言?为何VBA不算脚本语言?

欢迎关注BtOfficer(收藏、点赞、关注+转发),更多精彩仍在继续哦(专栏文章将更系统,更全面,但需要阁下支持哦),有严肃的技术,也有轻松的唠嗑,更有便捷的工具,期待你的加入哦!

如何使用EXCEL的VBA函数进行编程?


在Excel中,点击“开发工具-Visual Basic”即可进行Vba编程。

进行Excel的Vba编程前,应当先对Excel的常用对象、属性有一定了解:比如Worksheets对象代表制定工作簿中所有工作表的集合;Worksheet(1)就是工作簿的第一个工作表;Worksheet(1).range(“A1”)返回单元格A1等等......

初学者可以采用录制宏的办法,先模拟需要实现的过程,再对录的宏进行通用性修改,得到最终的Vba代码。

希望帮到你~

为什么VBA名列最讨厌编程语言第一名?


这个用脚指头都能想清楚

1、投入门槛不同。

是不是有人学了很久的C(过了二级或三级的业余户,甚至是专业户),仅知道C可以拿来算算术?传说中C牛逼得不要不要的,但硬是没体会到一星半点。要想成为高手,还得通过项目磨练个好几年,还得自己买好多好多的书籍。反观人家VBA,尼玛一文科生,人家打开盗版的Office,轻点录制按钮,就可以解决效率问题了。前后,需要1分钟么?你说气人不?他不仅没交学费,还啥也不懂,但是人家能操盘,还真能干业务了。

2、心里包袱不同。

你编程是不是从配置环境开始,一切中规中矩,一步一个脚印,踏踏实实地一路走来。你追求寻根问底式的学习,怕自己在业内成为笑柄而不得不准备大量的基础知识。你们以权威的大牛为偶像,对一知半解嗤之以鼻。在你们眼里,永远只有自己的代码最香,其他人的代码都是屎山。

VBA们就轻松多了,不仅不知道啥玩意叫环境,而且对技术细节也压根就不关心。人家关心的是,这个技术的玩意儿有没有源码?在哪能下载到?对大牛的唯一评判标准就是可以跑起来的VBA源码,别谈什么高级,用不了的都是垃圾!自己动手丰衣足食,是不假,但有现成货不用,只能叫傻!什么屎山,能跑起来的,都是火车!

3、使用门槛不同

当你处理COM时,你可能会连续不断地发出FK的咒骂声,因为其复杂而致使你到处宣言COM的反人类,必将已死。但VBA的老少朋友们,点开Office就已手握COM的神兵利器,关键是他们完全不知道,这货有这么大的杀伤力。你花了九牛二虎之力,尚且没有驾驭的丝滑感,而VBA们早就骑在上面有说有笑了。

当你为理解了OOP而倍感自豪的时候,人家早就在New各种系统对象了。当你要口诛笔伐说VBA不是面向对象的时候,人家反正也不懂,只自顾自地拖着窗体和各种控件,左手连着互联网,右手端着各色数据库,眼前一片业务繁忙。你撒口水的功夫,人家业绩又上去了一大截。

当你还在小心翼翼琢磨指针的神奇,觉着得指针者得天下,将其作为区分高矮的标准。对于这个高危利器,时常注意会不会自己脑子抽风导致捅篓子。当你为了那么几十上百毫秒的性能提升,而瞧不起VBA时,VBA们就老老实实地用着变量,用着默认的ByRef,慢就慢点吧,反正也不赶时间。不让用指针,自然也不用担心指针的害处。源码一眼看穿意图,还真不必爬那些遮遮掩掩的屎山。

当你说弱语言时,懒惰的VBA早就有人在做了。当你说强语言时,对自己有要求的VBA们早就要求了。你研究了半天才能使用的东西,VBA看上去就像没有门槛一样,你说气人不?你说让人讨厌不?这种毫无灵魂的技术,你说要打倒不?

4、知识的变现率不同。

你在技术上是不是满腹经纶,除了在网上各种鄙视自己没学过的工具(如VBA)外,有没有发现除了公司给你的活计外,你竟然无所事事。而VBA们就不一样了,一天都在想,手上这几样,到底还能拼出什么来?VBA们从来都很务实,也知道争论只会惹得一身骚,所以才有沉默的大多数。你看铺天盖地的VBA源码,即便是2021了,有关VBA应用的话题在自媒体时代依然是热门。

当你觉得技术可以赚钱发家,疯狂地在八戒等赏金论坛上接着单,为讨价还价而故弄玄虚时,VBA们早就识别到了精准需求,主动地帮助公司解决了效率问题。当你争着几百上千块一单时,VBA们早就成了公司的业务骨干,受到了老板的器重。

5、总有挖坟党站出来

正当一众专业选手,将VBA们怼得无言以对,甚至“VBA已死,替代者已出”成为一种流行的言论时,挖坟党总能站出来,指出VBA更专业的使用方法,让广大沉默者利用事实发声。于是,VBA在VSTO、Python的连续镇压下,甚至Office都从桌面版过渡到了云端版,VBA从6时代跨入7时代,依旧是官方默认支持的功能扩展工具。说好的死呢?说好的替代呢?


死之久矣!自然要排到最后啦!谁会把一个打心里不满的对象排在靠前的位置?谁会把一个嘲笑自己努力的对象排在靠前的位置?巴不得抹掉而后快,才是这个问题的用意!可是VBA恕难如愿啊,哪怕32位到64位,哪怕Win98到Win11,只要X86还没变味,VBA就还会让非专业人士干一些专业的活儿,VBA就依然还是很多独立小软件没有市场的绞肉机,VBA依然还会是技术上最小投入得到最高回报的途径之一...

最后赠送技术界的鄙视者们:本是同根生,相煎何太急。但凡知识全面一点的,就会明白软件技术在这个世界里绝不是最核心的那一环,别再无知地自嗨了。说VB/VBA不行的,其实都不如VB/VBA行!说VB/VBA不专业的,都不如VB/VBA专业!

欢迎支持和关注BtOfficer,一个利用汇编和C来为VB/VBA的挖坟者,在不增加应用难度的情况下,提升已有资源的利用场景。让更多实用的技术服务于生产,立马实用而不是吹嘘炫耀!在给大家分享技术原理的同时,也会给大家提供源码、工具。

本文标签:

相关阅读

  • wps中vba编程代码翻译_wps中vba编程代码翻译

  • 乔山办公网word文档
  • VBA是脚本语言吗? 正好笔者有几篇关于这个主题的讨论,索性就再总结一下,希望给读者朋友们一个更客观的视角。 一、什么是脚本语言 学术界将『为了缩短传统的编写-编译-链接-运
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网