admin 管理员组

文章数量: 1184232


2024年3月9日发(作者:php在线官网)

在WORD操作中,我们最常用的莫过于命令和对话框的操作了。对话框是程序与用户交互过程的一个对话,通过对话框的设置,可以将程序或者用户指定的一些信息转化为程序语言,进行期望操作。

在WORD的开发应用中,我们有四种对话框,其中s (Item)最为常用.

第一类对话框:s(Item)

它几乎(注意是几乎,不是全部)涵盖了前台用户与WORD APPLICATION程序的交互过程。我们可以使用for each –next 取得访问s,也可以使用index的方法进行访问,耐心寻味的是,两者运行的结果是不同的!WORD

VBA帮助文件中提供的WORD 内置对话框的数量也有出入,说明部分对话框不是特别支持访问,=227,而实际上利用以下代码可以得到748个对话框。(注意,版本号和安装语言不同,以及文档设置的不同,DIALOG数量可能都会有所不同)

请运行以下程序,以获得更多的Dialog

Sub GetAllDialogs()

Dim i As Integer, aString As String, MyString As String, Tem As String

On Error Resume Next

With Application

.ScreenUpdating = False

For i = 1 To 10000

Tem = .Dialogs(i).CommandName

If <> 0 Then : GoTo GONE

aString = "对话框(" & i & "):" & Tem & vbCrLf

MyString = MyString & aString

GONE: Next

After MyString

.ScreenUpdating = True

End With

End Sub

WORD内置对话框中的参数,请参阅WORD VBA帮助文件之内置对话框参数列表.以下为对话框使用示例:

Sub FilePrint()

Dim MyDialog As Dialog, Ps() As String, Pl() As String, PPcount

As Integer, PrintSel As String

Dim S As Integer, N As Integer, H As Integer, Upper As Integer,

Lower As Integer, Cop As Integer

Set MyDialog = s(wdDialogFilePrint) '定义打印对话框

With MyDialog

If .Show = -1 Then '按下确定按钮

Cop = .NumCopies '返回打印份数

Select Case .Range '打印区域

Case 0

PrintSel = "您选择了打印所有页"

'取得文档总页数

PPcount =

ation(wdNumberOfPagesInDocument)

Case 2 '相当于打印光标所在页

PPcount = 1

PrintSel = "您选择了打印当前第" &

ation(wdActiveEndPageNumber) & "页"

Case 4 '选择从第几页到第几页如"1-3,5,9,10-15"

PrintSel = "您选择了打印指定页:"

& .Pages

'数组

Ps = Split(.Pages, ",")

Upper = UBound(Ps) '上标

Lower = LBound(Ps) '下标

For i = Lower To Upper

N = N + 1

'如果该数组中的某个值中提取有"-"的话

If InStr(Ps(i), "-") > 0 Then

Pl = Split(Ps(i), "-")

S = Pl(1) * 1 - Pl(0) *

1 '直接取得上标和下标数值之差

H = S + H

End If

Next

PPcount = N + H '打印的页数等于单页和连页数之和

End Select

MsgBox PrintSel & ",打印份数为:" & Cop & ",打印的页数为:" & PPcount & "张," & vbCrLf _

& "实际上产生了" & Cop * PPcount & "张纸.", vbInformation

End If

End With

End Sub

第二类对话框:alog,它包括以下四个文件对话框:

alog (msoFileDialogFilePicker)浏览文件对话框

alog (msoFileDialogFolderPicker)浏览文件夹对话框

alog (msoFileDialogOpen)'打开文件对话框

alog (msoFileDialogSaveAs)'另存为对话框

使用方法:

Sub Example2()'此代码功能为列出指定文件夹中所有选取的WORD文件全路径名

Dim MyDialog As FileDialog, GetStr As String

On Error Resume Next '忽略错误

'定义一个文件夹选取对话框

Set MyDialog = alog(msoFileDialogFilePicker)

With MyDialog

. '清除所有文件筛选器中的项目

. "所有 WORD 文件", "*.doc", 1 '增加筛选器的项目为所有WORD文件

.AllowMultiSelect = True '允许多项选择

If .Show = -1 Then '确定

For Each vrtSelectedItem

In .SelectedItems '在所有选取项目中循环

GetStr = GetStr & vbCrLf &

vrtSelectedItem

Next vrtSelectedItem

' MsgBox GetStr

After GetStr '列出所有文件名

End If

End With

End Sub第三类对话框: Microsoft Common Dialog Control,Version 6,即Common

Dialog,又称通用对话框。

它有包括以下几个对话框类型:打开文件对话框、颜色对话框、字体对话框、打印机对话框和帮助对话框共6个对话框设置。

通用对话框的示例:

Private Sub UserForm_Initialize()

On Error GoTo ErrHandle '如果发生错误转至指定行标签处代码

'预置文件夹路径为WORD选项中的文件位置

r =

tFilePath(wdDocumentsPath)

'设置文件类型过滤器

= "所有Word文件(*.doc)|*.doc|文本文件(*.txt)|*.txt|所有文件(*.*)|*.*|文档模板(*.dot)|*.dot|RTF 文件(*.RTF)|*.RTF"

'指定文件类型项目(选定,或默认项)

Index = 1

'显示通用对话框之另存为对话框

ve

'根据用户设置保存文件

me

Exit Sub

'启用错误处理

ErrHandle: Unload (Me)

End Sub

第四类对话框:隐含对话框(笔者之见),前台具有对话框功能,而在VBA中却不能直接调用的对话框,笔者姑且称之为隐含对话框.也就是不能通过s(**).show来直接调用的对话框.

比如保护文档对话框,你在对话框中找不到,但你可以通过命令调用;你也可以通过代码直接进行保护/解除文档的工作(包括打开文档密码),比如:

'简化了的保护文档解除文档保护代码:

Sub ProtectDoc()

If tionType = -1 Then _

t 2, True, "Test"

End Sub

Sub UnprotectDoc()

If tionType <> -1 Then _

ect "Test"

End Sub

而有些对话框,则在特定条件下,才存在,比如,VBA工程保护密码,有这个对话框,但你却找不到写相应代码的属性与方法,只能通过调用命令,打开对话框,然后使用SENDKEYS 的方法预置对话框属性与内容后,确定.比如,VBA 工程保护密码的使用

Sub UnProtectPassWord()

Dim MyPw As String

'最新修改时间:2004-12-11 16:15:04

MyPw = "123" '假设密码为123,可修改

Updating = False

'打开VBE/工具/Project属性对话框

ntrol(ID:=2578).Execute

'发送密码和回车,第二次回车为确定属性对话框框

SendKeys MyPw & "{Enter 2}", True

Call ReWork

Updating = True

End Sub

通过上述代码的介绍,相信你已经了解了如何在代码中使用和操作WORD对话框了,更多的内容,有待于各位的进一步开发,到时候,别忘了告诉守柔!


本文标签: 对话框 代码 文档 文件 打印