问题

什么是「宏」? 为什么以前计算机老师说不要用 word 中的「宏」?

回答
“宏” 这个词,在不同的地方,含义可能有点不一样。但你要问的是电脑里,尤其是 Word 里的“宏”,那咱们就聊聊这个。

什么是“宏”?

你可以把“宏”想象成一个“自动化脚本”,或者说是一段“预设好的指令序列”。它不是人一句一句地去操作电脑,而是你提前把一系列操作录下来,或者写成一段简单的代码,然后需要的时候,你就可以一键“运行”这个宏,它就会按照你录好的或写好的步骤,自动帮你完成这些操作。

举个例子,你想在 Word 里给每一段文字都加上一个特定的前缀,比如“重点:”,然后字体变成红色,加粗。如果文档有很多段落,你一句一句手动来,那得有多麻烦?但如果你录制了一个宏,包含了“选中当前段落”、“输入‘重点:’”、“设置字体为红色”、“设置字体为加粗”这些操作,那么以后你只需要点一下那个宏的按钮,它就会自动在你想要的地方执行这些动作,省时省力。

在 Word 里,最常见的录制宏的方式就是利用它的“宏”功能,里面有个“录制宏”的选项。你做啥,它就记录啥。当然,更高级的用户可以直接用 VBA (Visual Basic for Applications) 语言来编写宏,这样就能实现更复杂、更灵活的功能。

为什么以前计算机老师说不要用 Word 里的“宏”?

这事儿得从安全性和稳定性两个方面说。

1. 安全隐患:潜在的病毒传播途径

这是最主要的原因。Word 宏,特别是那些用 VBA 编写的,本质上是一段可执行的代码。就像电脑上的其他程序一样,这段代码也可能包含恶意指令。

病毒伪装: 坏人可以把病毒代码藏在 Word 文档的宏里。当你不小心运行了带有恶意宏的文档时,这些代码就会在你的电脑上执行,比如窃取你的个人信息、损坏你的文件,甚至成为僵尸网络的一部分。
传播性强: Word 文档本身就很常见,也经常在人与人之间传递。如果一个文档里的宏带有病毒,那么每一次这个文档被打开并执行了宏,病毒就有机会传播到新的电脑上。尤其是在没有安全意识的用户群体中,这种传播会非常快。
难以辨别: 对于普通用户来说,一个看起来正常的 Word 文档,里面隐藏的恶意宏是很难发现的。你可能只是想用它来方便地排版,结果却给自己电脑带来了巨大的风险。

早些年,互联网环境不像现在这么成熟,网络安全意识也没有现在这么普遍。很多用户对宏的潜在危险并不了解,很容易就中了招。所以,老师们出于保护学生的电脑和信息安全考虑,都会特别强调“慎用”或“不用”Word 宏。

2. 稳定性问题:可能导致文档或软件崩溃

除了安全问题,宏本身也可能带来一些稳定性方面的困扰:

宏的错误: 即使宏没有恶意,但如果编写得不好,或者因为某些原因(比如 Word 版本不兼容、系统环境变化)出现错误,也可能导致 Word 软件本身出现卡顿、崩溃,甚至损坏你正在编辑的文档。
依赖性: 宏的运行依赖于 Word 软件和你的电脑环境。如果你的 Word 版本升级了,或者操作系统更新了,之前录制或编写的宏可能就无法正常工作,需要重新调整。
理解门槛: 虽然录制宏看起来简单,但如果想实现更复杂的功能,就需要学习 VBA 编程。对于初学者来说,这有一定的学习门槛,而且一旦遇到问题,调试起来也比较困难。

现在的看法

随着技术的发展和安全意识的提高,对 Word 宏的态度也在发生变化。

安全性提升: 现在的 Word 版本在安全方面做了很多改进。默认情况下,Word 会禁用来自不受信任来源的宏,或者会弹出警告,让你自己选择是否启用。用户可以选择信任特定的文档来源或数字签名,这样就可以更安全地使用宏。
自动化需求: 对于很多需要重复性操作的用户来说,宏依然是提高效率的利器。比如,你是一名文秘,需要处理大量格式统一的报告;或者你是一名科研人员,需要处理格式化的数据;或者你是一名图书管理员,需要批量修改图书信息。在这些场景下,合理使用宏可以节省大量时间。

总结一下

以前计算机老师不让用 Word 里的宏,主要是出于对安全风险的担忧,怕用户因为运行了恶意宏而感染病毒,造成信息丢失或电脑损坏。同时,稳定性问题也是一个考量。

现在,如果你对宏的安全性有了解,并且使用新版本的 Word,注意 Word 的安全提示,那么在需要进行重复性、自动化操作时,宏仍然是一个非常有用的工具。关键在于谨慎使用,并且了解你正在运行的宏来自哪里,做了什么。如果是不确定的来源,还是直接禁用或删除为妙。

网友意见

user avatar

宏这种东西,说话的场合不同、上下文不同,指代的东西就不一样。


但对office软件这种场景来说,宏这个概念简单而清晰:它就是一个VBA写的小程序。

——当然,仅限于office软件。玩C/C++的说的宏是另外一回事,你不需要知道。


VBA是一种编程语言,它是Visual Basic for Applications的缩写;其中basic是一种古老的脚本语言,visual basic是微软的basic升级版,这个升级使得它可以很方便的写图形应用。最后,微软把Visual Basic集成到了office应用(applications)里面,这就是VBA。


我们知道,你在屏幕上的任何操作都会唤起一段程序。

比如,复制文件实际上执行的就是copy这个命令对应的动作;一般来说copy可以接受两个参数,第一个参数是待复制文件,第二个参数是复制位置以及新的文件名。

换句话说,copy是一个接口(或者叫函数、方法、过程等等,不同系统叫法各异,但总体来说都是一回事);我们可以调用它,给它指定源文件和目标文件两个参数,这就完成了文件复制动作。


类似的,当你点了word左上角那个软盘的图标时,实际上就调用了word的save方法;save的默认参数就是当前文件名——当然,如果尚未指定文件名、或者点了“另存为”的话,实质上就是不带参数的调用了document.save,于是就会弹出一个对话框,询问你文件名了。

同样的,你在软件里的一切操作,归根结底都是这么个方法调用(或者叫接口调用、函数调用、功能调用,都行)。


那么,很容易想到,如果我们把用户做的每个动作唤起的那个函数以及参数都记录下来,是不是就可以复制他上一次的操作了?

比如,选择一段文字,把行间距调到10、字体大小调成宋体5号字,再调一调缩进风格……如果把对应的函数调用记下来,存成一个宏——那么,下次再选中一段文字,是不是点一下这个宏就可以自动完成以上工作了?


因此,很多软件,从Photoshop到office,都支持了动作录制——这样用户用起来就方便太多了,对吧。


既然已经允许录制动作了,那么何不更进一步呢?


比如,允许用户把自己录制的动作分发给另一个用户……

——老张!把目录风格改成上次的样子怎么弄?在线等,挺急的……

——哎呀你个小白,我给你说不清楚。这样吧,我录个宏,你导入它,执行一下就完了!


是不是方便多了?


还能更方便一些吗?

当然可以。

既然这些动作说白了就是函数调用、既然已经允许用宏记录连续执行的一堆函数调用了——那么,何不引入顺序分支循环这样的程序流程控制语句,把它搞成一门真正的语言呢?


没错。可以这样做。这就是VBA。

我曾经做过这样一个工具:用户产生一堆数据存进excel,然后需要一些很复杂的整理统计工作,最后产生几个图表——数据量不确定,页面数量也不确定,怎么办呢?

可以让用户逐个切换一堆sheet、然后选中所有数据并点宏。这个办法可以解决问题,但是一旦漏点多点统计结果就出错了——当然这比自己整理要方便一些,也更不容易出错;可显然太麻烦太不安全了……

简单。通过程序自动切换每个sheet、然后自动调用宏完成计算——整体只需点一次按钮就够了。

不仅如此,我还可以用宏自动批量导入数据(于是用户不需要自己一个个sheet指定文件慢慢导入了)、用usedrange自动取得数据行列数、然后自动用循环完成统计并生成统计页面、再在上面插入饼图、折线图……


我们的工具一次运行经常会产生几十页的数据;在过去,这些数据需要一个熟手忙活一整天、动不动还会出错;但有了我这个工具,一切就可以在几秒内自动完成——只要把数据放到同一个目录,然后点宏,在弹出框中选择正确目录,程序会自动完成剩下的所有工作。


还能更给力点吗?

可以。

我做的另一个小工具,给做测试的同事用的。他只需填写用例名称、用例步骤等信息,一点按钮,程序就会自动生成用例;再一点,自动执行所有用例;执行结束,用例执行结果、输出的所有信息就会被分门别类的收集起来,在excel中展示——甚至可以折叠细节、只看汇总;也可以随时点开查看每一个细节……

一个功能还算强大的专业工具就诞生了。


甚至于,还有人用它写游戏、写音乐播放器、写一切你想都想不到的东西——只要会编程,这些都挺简单的。


既然宏的功能如此强大,那么自然就会有人滥用它。


其实也很简单——无论原理还是实现,都简单的要命——office里面有个东西叫“模板”,其中的normal.dot模板是默认给所有文档用的,里面的宏可以在你新建文档时自动套用……

为了方便用户,微软做了个约定:如果你把宏叫autorun(或者auto?具体记不清了,大致就这意思),那么它就会在文档打开时第一时间运行。

这样用来干正事自然很方便,比如你的工作就是写格式文档,那么用个宏,自动把标题啥的都帮你填好、设置好格式,你只需打字就好了——多方便啊。


但有些心术不正的人就盘算了:既然如此,那么我也可以在用户新建文档时自动给他插个autorun宏进去啊……然后这个宏会在打开文档后自动执行,再把自己插进normal.dot里面去——那么,如果有人拷贝了这个文件,在自己的计算机上打开……是不是就传染给它了?

继续,更简单的,既然用户打开文档就能触发这个autorun宏,那么我自动判断一下,日期等于13号就把他的文件内容删了并立即存盘、关闭,看他哭不哭!

更狠一点的,遍历他的磁盘,删除一切可以删除的文件……


你看,就这么简单——所以我一直说,写病毒和技术无关,编程入门、心眼足够脏,足够了。


总之,这种损人不利己的宏病毒让微软大伤脑筋、也让office用户谈虎色变。

因此,当时就流行一种“因噎废食解决法”,就是删除normal.dot等几个模板文件、禁用宏,这样宏病毒就流行不起来了。

当然,现在office不再不声不响的运行宏、还会提示你是否启用宏、如果启用会遭受风险,等等——那些哗众取宠的脏心眼垃圾拿这个没办法,宏病毒渐渐就销声匿迹了。

user avatar

宏一般是指macro。计算机里的话,macro一般指一种集合,该集合会包含需要重复执行的一系列操作。所以有时候,宏也指该重复操作的脚本。

其实类似的东西,不要太纠结它的名称,搁VB的场合,也可以叫sub(子程序),搁很多场合,又可以叫函数,搁OO的场合得叫方法……

它叫什么不重要,你今天叫云天河,明天也可以叫云阿三。

类似的话题

  • 回答
    “宏” 这个词,在不同的地方,含义可能有点不一样。但你要问的是电脑里,尤其是 Word 里的“宏”,那咱们就聊聊这个。什么是“宏”?你可以把“宏”想象成一个“自动化脚本”,或者说是一段“预设好的指令序列”。它不是人一句一句地去操作电脑,而是你提前把一系列操作录下来,或者写成一段简单的代码,然后需要的.............
  • 回答
    在 C 语言中,你可能见过一些宏定义前面有 `__extension__` 这个奇怪的关键字。这玩意儿可不是随便什么人都能加上的,它通常跟 GCC (GNU Compiler Collection) 有关,并且是为了处理一些 C 标准之外的、但 GCC 允许的特性而存在的。简单来说,`__exten.............
  • 回答
    .......
  • 回答
    .......
  • 回答
    你问我开惯了超跑再坐五菱宏光/长安之星是个啥感受?这问题可太实在了!就像你天天吃米其林三星,突然给你端上一碗地道的炸酱面,那感觉……怎么说呢,挺复杂的,但绝对是种接地气的体验。首先,得说说这“坐”的感觉。你坐在超跑里,那是啥?包裹感十足的桶形座椅,腰部支撑给你牢牢锁住,哪怕一个急弯,你都纹丝不动,仿.............
  • 回答
    当咱们聊到操作系统内核,其实就是在说它最核心的那部分,负责管理计算机的硬件资源,并且为上层应用提供服务。这其中,文件系统作为一个极其重要且基础的功能,它的实现方式就直接影响着整个操作系统的效率、稳定性和设计理念。简单来说,文件系统在内核的实现方式主要分为两大派别:宏内核(Monolithic Ker.............
  • 回答
    五菱宏光成为网络梗,特别是“秋名山神车”的由来,是一个集成了现实生活观察、网络文化传播、以及一些夸张和幽默元素的故事。要详细讲述,我们可以从几个方面来梳理:一、 五菱宏光:一款怎样的车?首先,我们要了解五菱宏光本身是一款什么样的车型。 定位: 五菱宏光是上汽通用五菱推出的一款多功能商务车/MPV.............
  • 回答
    这个问题挺有意思的!如果五菱宏光MINI EV真的推出了一个1.0L四缸燃油版,而且价格还跟现在差不多,那这盘棋可就真有意思了。我来给你掰扯掰扯,这小家伙的销量能飞到啥地步。首先,咱们得承认,宏光MINI EV之所以能火成这样,价格是绝对的硬通货。它把电动车的入门门槛一下子拉到了普通老百姓能接受的区.............
  • 回答
    什么是国潮?“国潮”一词,顾名思义,指的是 中国创造的潮流文化。它并非简单地将中国传统元素堆砌在现代产品上,而是 将中国传统文化、历史传承、民族精神与现代审美、时尚设计、消费理念相结合,所形成的一种具有独特中国文化符号和时代精神的潮流现象。更具体地说,国潮涵盖了多个层面: 产品设计与品牌: 涵盖.............
  • 回答
    机械臂的重力补偿:化繁为简的精密之道机械臂在执行任务时,需要克服自身重量以及所携带末端执行器和工件的重力影响。重力是一个持续作用的力,其大小与质量成正比,方向始终向下。对于复杂的机械臂来说,忽略重力影响可能会导致一系列问题,而重力补偿技术就是为了解决这些问题而诞生的。简单来说,机械臂的重力补偿就是通.............
  • 回答
    什么是「低欲望社会」?「低欲望社会」(Low Desire Society)是一个社会学概念,用来描述一个社会中普遍存在的生活目标模糊、对物质和成功追求动力减弱、消费意愿不强、生活满意度相对较低但又不太会去积极改变现状的现象。这个概念最早由日本社会学家三桥贵明在其2013年出版的书籍《低欲望社会:国.............
  • 回答
    工程师文化是指在工程领域,由工程师群体共同创造、分享和传承的一系列价值观、信仰、行为模式、工作方式、思维方式以及社区规范的总和。它是一种深刻影响工程师个人和团队工作效率、创新能力、问题解决能力以及整个组织发展方向的无形力量。要详细理解工程师文化,我们可以从以下几个维度来剖析:一、核心价值观: 逻.............
  • 回答
    杰克逊主义(Jacksonian Democracy):一场改写美国政治格局的运动杰克逊主义(Jacksonian Democracy)并非一个由安德鲁·杰克逊本人明确定义和推行的学说,而是指代他在1820年代末至1830年代中期担任美国总统期间所倡导和实践的一系列政治思想、政策和运动,深刻地影响了.............
  • 回答
    兵棋推演(Wargaming)是一种模拟战争或冲突的工具和方法,它通过使用棋子(代表军队、单位或领导者)、地图和一套预设的规则,在一种受控的环境下进行,以探索、分析和理解军事行动的潜在结果、策略的有效性以及特定情况下的决策。以下是对兵棋推演更详细的阐述:核心概念与目的: 模拟与学习: 兵棋推演最.............
  • 回答
    极右翼是一个政治光谱上的概念,指的是比传统右翼更极端、更保守的政治意识形态和运动。要详细理解极右翼,需要从其核心理念、历史渊源、主要特征、多样性以及与主流右翼的区别等方面进行阐述。核心理念与主要特征:极右翼通常包含以下核心理念和特征,但并非所有极右翼群体都具备所有这些特质,而且这些特质的强调程度也可.............
  • 回答
    科学、宗教与迷信:界定与区别科学、宗教和迷信是人类理解世界、解释现象的几种不同方式。它们在方法论、认知基础和目的上存在着显著的差异。理解这些区别,有助于我们更清晰地认识科学的本质,并辨别不同知识体系的价值与局限。 什么是科学?科学(Science)源自拉丁语的 "scientia",意为“知识”。从.............
  • 回答
    “键政”是一个在中国网络文化中兴起的词汇,它通常指的是那些热衷于在网络上发表政治评论、参与政治讨论的人。这个词带有一定的戏谑和讽刺意味,但也可以理解为一种积极的社会参与。 什么是键政?“键政”一词的来源并不完全确定,但普遍认为它来自“键盘政治”的缩写。顾名思义,“键”指的就是键盘,而“政”则代表政治.............
  • 回答
    「数字化转型」绝非仅仅是一个抽象的概念,而是已经发展出了一系列成熟且可行的实践方法和策略。它是一个持续的、全方位的、以客户为中心的过程,旨在利用数字技术重塑企业或组织的运作方式、价值创造模式以及与客户互动的方式。一、 什么是「数字化转型」?简单来说,数字化转型就是利用数字技术(如人工智能、大数据、云.............
  • 回答
    「富人思维」(Rich Mindset)并非指一种固定的、死板的模式,而是一种看待世界、应对挑战、规划未来以及与财富互动时的核心心态和行为模式。它强调的是一种主动、积极、成长和责任感的思维方式,而不是仅仅关注金钱的数量。简单来说,富人思维的核心在于:相信自己有能力创造和获取财富,并愿意为此付出努力、.............
  • 回答
    什么是“翻译腔”?“翻译腔”是一个汉语中用来形容翻译作品中不自然、生硬、不符合汉语表达习惯的语言现象的词语。它通常是指译者在翻译过程中,过度地保留了原文的句法结构、词汇选择、语序甚至思维方式,导致译文读起来不像地道的汉语,反而像是由外国人用中文写出来的。可以从以下几个方面来理解“翻译腔”:1. 句法.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有