VBA之WORD對話框的利用(Word Dialog)_第1頁
VBA之WORD對話框的利用(Word Dialog)_第2頁
VBA之WORD對話框的利用(Word Dialog)_第3頁
VBA之WORD對話框的利用(Word Dialog)_第4頁
VBA之WORD對話框的利用(Word Dialog)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

本文格式為Word版,下載可任意編輯——VBA之WORD對話框的利用(WordDialog)在WORD操作中,我們最常用的莫過于命令和對話框的操作了。對話框是程序與用戶交互過程的一個對話,通過對話框的設(shè)置,可以將程序或者用戶指定的一些信息轉(zhuǎn)化為程序語言,進(jìn)行期望操作。

在WORD的開發(fā)應(yīng)用中,我們有四種對話框,其中Application.Dialogs(Item)最為常用.

第一類對話框:Application.Dialogs(Item)

它幾乎(注意是幾乎,不是全部)涵蓋了前臺用戶與WORDAPPLICATION程序的交互過程。我們可以使用foreach–next取得訪問application.dialogs,也可以使用index的方法進(jìn)行訪問,耐心尋味的是,兩者運(yùn)行的結(jié)果是不同的!WORDVBA幫助文件中提供的WORD內(nèi)置對話框的數(shù)量也有出入,說明部分對話框不是特別支持訪問,Application.Dialogs.Count=227,而實(shí)際上利用以下代碼可以得到748個對話框。(注意,版本號和安裝語言不同,以及文檔設(shè)置的不同,DIALOG數(shù)量可能都會有所不同)

請運(yùn)行以下程序,以獲得更多的DialogSubGetAllDialogs()

DimiAsInteger,aStringAsString,MyStringAsString,TemAsStringOnErrorResumeNextWithApplication

.ScreenUpdating=FalseFori=1To10000

Tem=.Dialogs(i).CommandName

IfErr.Number0ThenErr.Clear:GoToGONEaString=\對話框(\MyString=MyString&aStringGONE:Next

Selection.InsertAfterMyString.ScreenUpdating=TrueEndWithEndSub

WORD內(nèi)置對話框中的參數(shù),請參閱WORDVBA幫助文件之內(nèi)置對話框參數(shù)列表.以下為對話框使用示例:SubFilePrint()

DimMyDialogAsDialog,Ps()AsString,Pl()AsString,PPcountAsInteger,PrintSelAsString

DimSAsInteger,NAsInteger,HAsInteger,UpperAsInteger,LowerAsInteger,CopAsInteger

SetMyDialog=Application.Dialogs(wdDialogFilePrint)'定義打印對話框

WithMyDialog

If.Show=-1Then'按下確定按鈕Cop=.NumCopies'返回打印份數(shù)SelectCase.Range'打印區(qū)域Case0PrintSel=\您選擇了打印所有頁\'取得文檔總頁數(shù)PPcount=

ActiveDocument.Content.Information(wdNumberOfPagesInDocument)Case2'相當(dāng)于打印光標(biāo)所在頁P(yáng)Pcount=1PrintSel=\您選擇了打印當(dāng)前第\Selection.Information(wdActiveEndPageNumber)&\頁\

Case4'選擇從第幾頁到第幾頁如\PrintSel=\您選擇了打印指定頁:\'數(shù)組Ps=Split(.Pages,\Upper=UBound(Ps)'上標(biāo)Lower=LBound(Ps)'下標(biāo)Fori=LowerToUpperN=N+1'如果該數(shù)組中的某個值中提取有\(zhòng)的話IfInStr(Ps(i),\Pl=Split(Ps(i),\

S=Pl(1)*1-Pl(0)*1'直接取得上標(biāo)和下標(biāo)數(shù)值之差

H=S+HEndIfNextPPcount=N+H'打印的頁數(shù)等于單頁和連頁數(shù)之和EndSelect

MsgBoxPrintSel&\打印份數(shù)為:\打印的頁數(shù)為:\PPcount&\張,\&\實(shí)際上產(chǎn)生了\張紙.\vbInformationEndIfEndWithEndSub

第二類對話框:Application.FileDialog,它包括以下四個文件對話框:Application.FileDialog(msoFileDialogFilePicker)瀏覽文件對話框

Application.FileDialog(msoFileDialogFolderPicker)瀏覽文件夾對話框Application.FileDialog(msoFileDialogOpen)'打開文件對話框Application.FileDialog(msoFileDialogSaveAs)'另存為對話框使用方法:SubExample2()'此代碼功能為列出指定文件夾中所有選取的WORD文件全路徑名DimMyDialogAsFileDialog,GetStrAsStringOnErrorResumeNext'忽略錯誤

'定義一個文件夾選取對話框

SetMyDialog=Application.FileDialog(msoFileDialogFilePicker)WithMyDialog

.Filters.Clear'清除所有文件篩選器中的項(xiàng)目

.Filters.Add\所有WORD文件\\1'增加篩選器的項(xiàng)目為所有WORD文件

.AllowMultiSelect=True'允許多項(xiàng)選擇If.Show=-1Then'確定

ForEachvrtSelectedItemIn.SelectedItems'在所有選取項(xiàng)目中循環(huán)GetStr=GetStr&vbCrLf&vrtSelectedItemNextvrtSelectedItem

'MsgBoxGetStr

Selection.InsertAfterGetStr'列出所有文件名EndIfEndWithEndSub第三類對話框:MicrosoftCommonDialogControl,Version6,即CommonDialog,又稱通用對話框。

它有包括以下幾個對話框類型:打開文件對話框、顏色對話框、字體對話框、打印機(jī)對話框和幫助對話框共6個對話框設(shè)置。通用對話框的示例:

PrivateSubUserForm_Initialize()

OnErrorGoToErrHandle'如果發(fā)生錯誤轉(zhuǎn)至指定行標(biāo)簽處代碼'預(yù)置文件夾路徑為WORD選項(xiàng)中的文件位置CommonDialog1.InitDir=

Application.Options.DefaultFilePath(wdDocumentsPath)'設(shè)置文件類型過濾器

CommonDialog1.Filter=\所有Word文件(*.doc)|*.doc|文本文件(*.txt)|*.txt|所有文件(*.*)|*.*|文檔模板(*.dot)|*.dot|RTF文件(*.RTF)|*.RTF\

'指定文件類型項(xiàng)目(選定,或默認(rèn)項(xiàng))CommonDialog1.FilterIndex=1'顯示通用對話框之另存為對話框CommonDialog1.ShowSave'根據(jù)用戶設(shè)置保存文件

ActiveDocument.SaveAsCommonDialog1.FileNameExitSub

'啟用錯誤處理

ErrHandle:Unload(Me)EndSub

第四類對話框:隱含對話框(筆者之見),前臺具有對話框功能,而在VBA中卻不能直接調(diào)用的對話框,筆者姑且稱之為隱含對話框.也就是不能通過application.dialogs(**).show來直接調(diào)用的對話框.

比如保護(hù)文檔對話框,你在對話框中找不到,但你可以通過命令調(diào)用;你也可以通過代碼直接進(jìn)行保護(hù)/解除文檔的工作(包括打開文檔密碼),比如:'簡化了的保護(hù)文檔\\解除文檔保護(hù)代碼:SubProtectDoc()

IfActiveDocument.ProtectionType=-1Then_ActiveDocument.Protect2,True,\EndSub

SubUnprotectDoc()

IfActiveDocument.ProtectionType-1Then_ActiveDocument.Unprotect\EndSub

而有些對話框,則在特定條件下,才存在,譬如,VBA工程保護(hù)密碼,有這個對話框,但你卻找不到寫相應(yīng)代碼的屬性與方法,只能通過調(diào)用命令,開啟對話框,然后使用SENDKEYS的方法預(yù)置對話框?qū)傩耘c內(nèi)容后,確定.譬如,VBA工程保護(hù)密碼的使用

SubUnProtectPassWord()DimMyPwAsString

'最新修改時間:2023-12-1116:15:04MyPw=\假設(shè)密碼為123,可修改Application.ScreenUpdating=False'開啟VBE/工具/Project屬性對話框

Applicat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論