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

第39章 安全设置及VBA 应用(2)

可以设置复选框型窗体域的默认值,在取消“启用复选框”时,将保持默认状态不被用户更改。在窗体保护时单击该域可在勾选与清除复选框之间切换。

3.文字型窗体域

若要在受保护的节中允许用户添加文本,可使用文字型窗体域。文字型窗体域可以限制用户录入的文本类型或者格式,添加文字型窗体域的具体操作步骤如下。

步骤1:单击“窗体”工具栏中的,可在插入点位置添加一个文字型窗体域。

步骤2:双击添加的文字窗体域,出现“文字型窗体域选项”对话框。

可以为文字型窗体域设置默认文字、类型、文字长度和文字格式等,并且可以使用书签对文字型窗体域进行数据计算。

若要调整文字型窗体域的初始宽度,选中要调整的文字型窗体域,单击“格式”→“调整宽度”菜单项,“调整宽度”对话框。实际上文字型窗体域会根据文本内容自动调整宽度,可与普通文本一样对其进行格式设置。

4.下拉型窗体域

下拉型窗体域允许用户在受保护的节中选择单个列表项目,具体操作步骤如下。

步骤1:单击“窗体”工具栏中的,可在插入点位置添加一个下拉型窗体域。

步骤2:双击添加的下拉型窗体域,打开“下拉型窗体域选项”对话框。

步骤3:再单击“窗体”工具栏中的,可使窗体域生效。要真正保护窗体并限制用户只能在窗体域中编辑,则应启动强制保护。

9.1.4文件安全性设置

在日常工作生活中,出于安全考虑,往往需要对文件加以一定的限制,常见的有防打开、防修改、防丢失、防泄私和防篡改。

1.防打开

对于一些重要的文件,必须加设密码防止任意用户打开。

(1)设置打开密码。

步骤1:单击“工具”→“选项”,打开选项对话框,单击“安全性”选项卡,分别在“打开文件时的密码”和“修改文件时的密码”文本框中输入要设置的密码。也可以单击“文件”→“另存为”菜单项,弹出“另存为”对话框。

单击“工具”→“安全措施选项”菜单项,出现“安全性”对话框,在“打开文件时的密码”和“修改文件时的密码”文本框中输入要设置的密码。

步骤2:单击“确定”按钮,打开“确认密码”对话框,在“请再次键入打开文件时的密码”文本框中输入确认的密码。

步骤3:单击“确定”按钮,完成对打开文件的保护设置。

2.防修改

对于一些重要的文档,可以设置修改密码或者设置权限,限制用户对文档的修改。

(1)设置修改密码。

具体操作步骤如下。

步骤1:“安全性”选项卡对话框,在“修改文件时的密码”文本框中输入修改文件时的密码。

步骤2:单击“确定”,弹出“确认密码”对话框,在“请再次键入修改文件时的密码”文本框中输入确认的密码。

步骤3:单击“确定”,完成文件修改密码的设置。

(2)设置权限。

对文档设置相应的权限,前面已提到过,这里不再叙述。

3.防丢失

文档在保存过程中,由于不可预料的因素(如计算机突然重启、程序出错等),有可能导致文档的丢失或者损坏。

因此,必须对这类文件加以备份。

(1)自动备份。

单击“工具”→“选项”菜单项,打开选项对话框,单击“保存”选项卡,Word的“保存”选项卡。

勾选“保留备份”复选框,单击“确定”,完成保留备份设置。当原文件损坏或者丢失时,打开备份文件,另存为Word文档,即可恢复丢失前的文档。

(2)自动保存。

如果程序意外出错、计算机意外重启或者断电,Word会在下次启动时打开“自动恢复”文件,“自动恢复”文件可能包含未保存的信息。可以为文档设置自动保存时间,勾选“自动保存时间间隔”复选框,默认情况下,Word以每隔10分钟自动创建文档恢复文件。用户可以修改自动保存时间间隔。“自动恢复”文件默认被保存于“C:\Documents and Settings\UserName\Application Data\Microsoft\Word”文件下,默认文件名为“‘自动恢复’保存*(原文件名).asd”的自动恢复文件。

单击“选项”对话框中的“文件位置”选项卡、可查看或者修改“自动恢复”文件夹位置。

双击打开“自动恢复”文件,另存为Word文档即可。

提示:Excel和PowerPoint 的自动保存选项跟Word有不同,但都有自动保存功能。

4.防泄私

对于一些内容敏感的文档,应在保存时删除文件属性中的敏感信息,以防止泄露私密。

(1)已有文档。

对于已有文档,单击“文件”→“属性”菜单项,打开“属性”对话框,单击“摘要”选项卡。删除对话框中的敏感信息,单击“确定”,然后保存文档即可。

(2)新建的文档。

对于新建的文档,如果要选择性地保存文档属性,可以单击“工具”→“选项”命令,打开“选项”对话框,单击“保存”选项卡,勾选“提示保存文档属性”复选框。

在进行文档保存时,将自动打开“属性”对话框,可根据需要删除、添加或者修改某些敏感信息。

5.防篡改

Word中可以对文件进行数字签名,以确认文档是否被其他用户篡改过。下面介绍如何对Word文档进行数字签名。

(1)获得数字签名。

获取数字签名的方式有以下3种:

从商业认证机构获得数字证书(如VeriSign,Inc.,但是此类证书一般要付费才能获取)。

从内部安全管理员或者IT 专业人员那里获得。

使用Selfcert 程序自己创建数字签名。

下面简单介绍一下使用Selfcert.exe程序创建数字签名的过程。该方式生成的数字签名仅适用于本地计算机。

步骤1:单击“开始”→“所有程序”→“Microsoft Office”→“Microsoft Office工具”→“VBA项目的数字证书”命令,打开创建数字证书程序。

步骤2:在图9‐45文本输入框中输入一个证书名称,如“HDU-jlm”,单击“确定”按钮,出现提示信息。

(2)为文档进行数字签名。

通过上述步骤获得数字证书之后,就可以对文档进行数字签名了,具体步骤如下。

步骤1:单击“工具”→“选项”命令,打开“选项”对话框,单击“安全性”选项卡。

步骤2:单击“数字签名”按钮,出现“数字签名”对话框。

步骤3:单击“添加”按钮,打开“选择证书”对话框。

步骤4:选择颁发者为“HDU‐jlm”的证书,单击“确定”按钮,将为活动文档添加一个由“HDU‐jlm”颁发的数字签名。

步骤5:单击“确定”按钮,完成对当前文档的数字签名设置。

添加数字签名的文档将在状态栏中显示图标。在“数字签名”对话框中,单击“查看证书”按钮,查看数字签名的详细内容,以判断文档是否被篡改。

9.2VBA宏及其应用

9.2.1宏的概念

什么是宏?简单来讲,宏是通过一次单击就可以应用的命令集。在Microsoft Office软件中创建的大多数宏都是用一种称为Visual Basic for Application(通常称为VBA)的语言编写的。VBA 是Microsoft 公司用于其Office软件套件的一个语言,是Visual Basic程序语言的一个分支,供用户撰写宏,对Office进行二次开发。这种二次开发的能力和弹性,是Microsoft Office远胜于其他(缺乏宏能力的)办公软件的一大关键。使用VBA宏可以实现如下功能。

(1)自动执行一串操作。

若需要经常进行有规律的汇总操作,就可以制作一个宏来代替这一操作。

(2)自动执行重复操作。

若需要在多个文档中执行同样的操作,则可以在第一次执行该操作时录制宏,然后在其他文档上执行该宏,完成这些重复的操作。

(3)创建定制的命令。

用户可以将几个菜单项命令结合在一起,然后通过输入一次键盘指令就可以执行这一操作。

(4)创建定制的工具栏按钮。

用户可以使用自己定义的命令按钮,自定义工具栏,执行自己创建的宏。

(5)创建自定义插件。

用户可以根据需要创建自定义插件。

9.2.2VBA基础

1.变量及数组

(1)VBA 允许使用未定义的变量,默认是变体变量Variant。

(2)在模块通用说明部分,加入Option Explicit 语句可以强迫用户进行变量定义。

(3)变量定义语句及变量作用域。

Dim变量as类型,定义为局部变量。

Private变量as类型,定义为私有变量。

Public变量as类型,定义为公有变量。

Global变量as类型,定义为全局变量。

Static变量as类型,定义为静态变量。

一般变量作用域的原则是,在哪部分定义就在哪部分起作用。

(4)常量为变量的一种特例,用Const定义,且定义时赋值,程序中不能改变值,作用域也如同变量作用域。

数组是包含相同数据类型的一组变量的集合,对数组中的单个变量引用通过数组索引下标进行。在内存中表现为一个连续的内存块,必须用Global或Dim 语句来定义。二维数组是按行列排列。

除了以上固定数组外,VBA还有一种功能强大的动态数组,定义时无大小维数声明;在程序中再利用Redim语句来重新改变数组大小,原来数组内容可以通过加preserve 关键字来保留。

2.子过程及函数

(1)子过程。

过程由一组完成所要求操作任务的VBA语句组成。子过程不返回值,因此,不能作为参数的组成部分。

其语法为:

[Private|Public][Static]Sub<过程名>([参数])

[指令]

[ExitSub]

[指令]

End Sub

说明:

Private,Public和Static为可选。如果使用Private声明过程,则该过程只能被同一个模块中的其他过程访问。如果使用Public声明过程,则表明该过程可以被工作簿中的所有其他过程访问。但是如果用在包含Option Private Module语句的模块中,则该过程只能用于所在工程中的其他过程。如果使用Static 声明过程,则该过程中的所有变量为静态变量,其值将保存。

Sub为必需,表示过程开始。

<过程名>为必需,可以使用任意有效的过程名称,其命名规则通常与变量的命名规则相同。

参数为可选,代表一系列变量并用逗号分隔,这些变量接受传递到过程中的参数值。如果没有参数,则为空括号。

Exit Sub为可选,表示在过程结束之前,提前退出过程。

End Sub为必需,表示过程结束。

如果在类模块中编写子过程并把它声明为Public,它将成为该类的方法。

(2)函数。

函数(Function)是能完成特定任务的相关语句和表达式的集合。当函数执行完毕时,它会向调用它的语句返回一个值。如果不显示指定函数的返回值类型,就返回缺省的数据类型值。

声明函数的语法为:

[Private|Public][Static]Function< 函数名>([参数])[As类型]

[指令]

[函数名=表达式]

[ExitFunction]

[指令]

[函数名=表达式]

End Function

说明:

Private、Public和Static为可选。如果使用Private 声明函数,则该函数只能被同一个模块中的其他过程访问。如果使用Public 声明函数,则表明该函数可以被所有ExcelVBA 工程中的所有其他过程访问。不声明函数过程的作用域时,默认的作用域为Public。如果使用Static 声明函数,则在调用时,该函数过程中的所有变量均保持不变。

Function 为必需,表示函数过程开始。

< 函数名>为必需,可以使用任意有效的函数名称,其命名规则与变量的命名规则相同。

参数为可选,代表一系列变量并用逗号分隔,这些变量是传递给函数过程的参数值。参数必须用括号括起来。

类型为可选,指定函数过程返回的数据类型。

Exit Function 为可选,表示在函数过程结束之前,提前退出过程。

End Function 为必需,表示函数过程结束。

通常,在函数过程执行结束前给函数名赋值。函数可以作为参数的组成部分,但是,函数只返回一个值,它不能执行与对象有关的动作。如果在类模块中编写自定义函数并将该函数的作用域声明为Public,这个函数将成为该类的方法。

3.VBA 内部函数

VBA 内部函数有许多种,以下就介绍一下最主要的几种内部函数。