书城计算机办公软件高级应用
13504200000040

第40章 安全设置及VBA 应用(3)

(1)数学函数,如Abs(number)、Cos(number)、Exp(number)等;

(2)数组函数,如Array(arglist)、LBound(arrayname[,dimension])等;

(3)字符串操作函数,如Right(string,length)、LTrim(string)、Join(sourcearray[,delimiter])等;

(4)日期和时间函数,如DATE、NOW、DateAdd(interval,number,date)等;

(5)数据类型检查与转换函数,如IsNumeric(expression)、IsArray(varname)、IsEmpty(expression)等;

(6)文件操作函数,如CurDir [(drive )]、GetAttr(pathname )、FileDateTime(pathname)、FileLen(pathname)等;

(7)输入输出函数,如MsgBox(prompt[,buttons][,title][,helpfile,context])、Input(number,[ # ]filenumber)等;

(8)财会类函数,如DDB(cost,salvage,life,period[,factor])、NPV(rate,values())、IRR(values()[,guess])等;

(9)格式化数据,如FormatDateTime(Date[,NamedFormat])、Format(expression[,format[,firstdayofweek[,firstweekofyear]]])等;

(10)系统与对象函数,如CreateObject(class,[servername])、DoEvents()、GetAllSettings(appname,section)等。

9.2.3宏的简单应用

下面分别以在Word和Excel中举例介绍如何使用宏录制器创建简单宏应用,并在VBE(Visual Basic编辑器)中查看修改宏代码,以适应新的需要。

(1)Word文本格式设置宏。

步骤1:单击“工具”→“宏”→“录制新宏”菜单项,打开“录制新宏”对话框。

步骤2:在“录制新宏”对话框的“宏名”文本框中可输入录制新宏的名称。

步骤3:接下来可以将宏指定到工具栏或者指定为快捷方式。这里选择将宏指定到“工具栏”,单击“工具栏”按钮,“自定义”对话框。

在“自定义”对话框的“命令”选项卡中,将右边列表框中的“Project.NewMacros.Macro1”命令拖动到工具栏中,此时工具栏中出现了“Project.NewMacros.Macro1”按钮。

但是该按钮是文字画面,没有显示按钮形状,右键单击该按钮,弹出菜单,用户可以选择按钮图像及显示方式。

步骤4:在“将宏保存在”下拉列表框中选择“网格.doc”选项。若选择“所有文档(Normal.dot)”选项,则在任何打开的Word文档中都可以使用该宏。

步骤5:默认情况下,Word将自动添加有关宏的说明。若要进行修改,可以在“说明”文本框中输入说明。

步骤6:单击“格式”→“段落”,系统将弹出“段落”对话框,将各段落参数值设置。

步骤7:然后单击“停止”工具栏中的“停止录制”按钮,完成录制操作。

步骤8:打开示例文档,选择要设置格式的段落,然后单击“工具”→“宏”→“宏”菜单项,或按+打开。

步骤9:选择Macro1,再单击运行,便执行文本格式设置宏,运行效果。

步骤10:打开VBE,可看到该宏的源代码。

(2)制作语音朗读的宏。

Word中没有语音朗读功能,但是Excel中具有这个功能,如何使Word也具有朗读功能呢?在Microsoft Office中,各个组件间可以相互调用,通过调用Excel对象使Word也具有朗读功能。下面通过制作一个宏来完成调用,具体操作步骤如下。

步骤1:单击“工具”→“宏”→“Visual Basic编辑器”菜单项,打开Visual Basic编辑器。

步骤2:在Visual Basic 编辑器中创建一个SpeakText 的过程,具体代码如下。

Sub SpeakText()

Dim spoAsObject

Set spo=CreateObject("Excel.Application")

spo.Speech.Speak Selection.Text

Set spo=Nothing

End Sub

选择相应的文本,然后打开宏对话框,选择SpeakText宏,单击“运行”,Word便会自动朗读选择的文本。

程序说明:

(1)CreateObject 函数创建一个Excel.Application 对象,并赋值给spo 该对象的引用。

(2)接着调用Speech 子对象的Speak 方法来朗读选取的文本。

(3)最后设置spo 为空引用,释放资源。

(3)Excel简单宏应用。

Excel中宏录制的方法与Word中类似,不同的是Excel中将宏保存在工作表或工作簿。还有一点不同的是,Excel不能将宏添加到工具栏中,只能为宏指定某个快捷键。下面制作一个宏,用以将低于60分的成绩突出显示,字体加粗,大小由12磅改为18磅,宏制作的具体操作步骤如下。

步骤1:单击“工具”→“宏”→“录制新宏”菜单项,打开“录制新宏”对话框。

步骤2:选中成绩低于60的单元格,设置字体大小为18磅,加粗,完成后单击“停止”工具栏中的“停止录制”按钮,完成宏录制操作。

此时可以通过宏操作来突出不及格成绩的显示,但是只能对一个单元格进行操作,如何通过宏来突出显示工作表中的所有不及格成绩呢?下面将通过修改宏代码来适应新的应用,具体操作步骤如下。

步骤1:单击“工具”→“宏”→“Visual Basic编辑器”,打开Visual Basic编辑器。

步骤2:修改代码如下:

Sub SetStyle()

Dim scoreAs Integer,intRow As Integer,iAs Integer

intRow=Sheets("Sheet1").UsedRange.Rows.Count-1

For i=0To intRow-1

W ith Sheets("Sheet1")

If.Cells(i +2,3).Value<60Then

W ith Cells(i +2,3).Font

.Name="宋体"

.Size=18

.Bold=True

.Strikethrough=False

.Super=False

.Sub=False

.OutlineFont=False

.Shadow=False

.Underline=xlUnderlineStyleNone

.ColorIndex=xlAutomatic

EndW ith

End If

EndW ith

Next i

End Sub

程序说明:

(1)intRow 用来获取工作表中已有数据的行数。

(2)接下来使用一个循环语句,将成绩低于60的字体设置为18磅、粗体。

步骤3:单击Visual Basic编辑器工具栏中的保存按钮,关闭编辑器,然后在Excel中单击“工具”→“宏”→“宏”菜单项,弹出“宏”对话框。

步骤4:选中SetStyle后,单击“执行”按钮,便运行修改后的宏。

9.2.4宏安全性及宏病毒

1.宏安全性

VBA宏中可能包含一些潜在的病毒,也就是“宏病毒”,为了保证VBA 的安全,就要设置其安全性。在Office中要与他人共享宏,则可以通过数字签名来验证,以保证VBA 宏的可靠来源。

在打开包含VBA宏的文档时,都可以先验证VBA 宏的来源再启用宏。

下面介绍设置VBA安全性的具体操作步骤。

(1)单击“工具”→“宏”→“安全性”菜单项,打开“安全性”对话框。

在“安全级”选项卡中有4个单选按钮。

非常高。选中该选项,则只允许运行在可信位置安装的宏,其他所有签名和未签名的宏都将被禁用。通过将“安全级”设置为“非常高”并禁用在可信位置安装的宏,可完全禁用所有的宏。如何禁用在可信位置安装的宏?在“安全性”对话框的“可靠发行商”选项卡中取消选中“信任所有安装的加载项和模板”复选框。

高。选中该选项,则只运行经过数字签名而且用户确认来源可靠的宏。在信任一个源之前,应该确认源是可靠的,并在给该宏签名前要使用病毒扫描软件来扫描病毒。没有签名的宏自动被禁用。

中。选中该选项,则每当遇到来自不在可靠来源列表中的宏时,将会弹出“安全警告”对话框,显示一条警告信息。用户可以选择在打开文件时是否启用还是禁用宏,如果文件中可能包含病毒,应该选择禁用宏。

低。若肯定打开的文件和加载项都没有病毒,则可选中该选项。选中该选项,将关闭宏病毒。

(2)默认情况下,“安全级”设置为“高”。这里将其设置为“中”,然后单击“确定”即可。

(3)当再次打开文档时,将启用“安全级”的设置。

Microsoft Office软件的安全性在默认情况下设置为“高”。未经签名的VBA 宏不能在此环境中运行。需要先将宏的安全级别更改为“中”以运行此代码。单击“工具”→“宏”→“安全性”菜单项,在“安全级”选项卡中,选择“中”,再单击“确定”完成,然后重新启动程序才能使安全级别更改生效。

2.宏病毒

(1)宏病毒定义。

宏病毒就是利用VBA进行编写的一些宏,这些宏可以自动运行,干扰用户工作,轻则降低工作效率,重则破坏文件,使用户遭受巨大损失。

(2)宏病毒特点。

传播快。宏病毒成为传播最快的病毒,其原因有三个:第一,现在用户几乎对可执行文件病毒和引导区病毒已经有了比较一致的认识,对这些病毒的防治都有一定的经验,许多公司、企业对可执行文件和磁盘的交换都有严格的规定。但对宏病毒的危害还没有足够的认识,而现在主要的工作就是交换数字文件,因此使宏病毒得到迅速传播。第二,现在的查病毒、防病毒软件主要是针对可执行文件和磁盘引导区设计的,一般都假定数据文件中不会存在病毒,而人们相信查病毒软件的结论,从而使隐藏在数据文件中的病毒成为漏网之鱼。第三,Internet普及以及各种网络通信软件的大量应用使病毒的传播速度大大加快。

制作和变种方便。目前宏病毒原型已有很多,并在不断增加中。只要修改宏病毒中病毒激活条件和破解条件,就可以制造出一种新的宏病毒,甚至比原病毒的危害更加严重。

破坏性大。鉴于宏病毒用VBA 语言编写,VBA 语言提供了许多系统及底层调用,如直接使用DOS命令,调用Windows API,调用DDE和DDL等。这些操作均可能对系统构成直接威胁,而Office中的Word、Excel等软件在指令的安全性和完整性上的检测能力很弱,破坏系统的指令很容易被执行。

兼容性差。宏病毒在不同版本的Office中的Word、Excel中不能运行。

(3)宏病毒的预防。

当打开一个含有可能携带病毒的宏的文档时,系统将自动显示宏警告信息。这样就可选择打开文档时是否要包含宏,如果希望文档包含要用到的宏,打开文档时就包含宏。

如果您并不希望在文档中包含宏,或者不了解文档的确切来源。例如,文档是作为电子邮件的附件收到的,或是来自网络。在这种情况下,为了防止可能发生的病毒传染,打开文档过程中出现宏警告提示框时最好单击“取消宏”按钮,以取消该文档允许宏。

9.3习题

1.简述文档权限设置的操作步骤。

2.Word文档保护的编辑限制有几种?

3.Word及Excel中的文档保护功能分别有哪些?

4.PowerPoint中是否有文档保护功能?如何保护PowerPoint 文档?

5.简述VBA宏及宏病毒的概念。

6.在Office中怎么禁用和启用宏?

7.修改SpeakText 过程,使其能够朗读整个Word文档。

8.编写一个ConvertText 过程,将首字母小写的英文单词转换为首字母大写。