




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——VBA之WORD對話框的利用(WordDialog)在WORD操作中,我們最常用的莫過于命令和對話框的操作了。對話框是程序與用戶交互過程的一個對話,通過對話框的設(shè)置,可以將程序或者用戶指定的一些信息轉(zhuǎn)化為程序語言,進行期望操作。
在WORD的開發(fā)應(yīng)用中,我們有四種對話框,其中Application.Dialogs(Item)最為常用.
第一類對話框:Application.Dialogs(Item)
它幾乎(注意是幾乎,不是全部)涵蓋了前臺用戶與WORDAPPLICATION程序的交互過程。我們可以使用foreach–next取得訪問application.dialogs,也可以使用index的方法進行訪問,耐心尋味的是,兩者運行的結(jié)果是不同的!WORDVBA幫助文件中提供的WORD內(nèi)置對話框的數(shù)量也有出入,說明部分對話框不是特別支持訪問,Application.Dialogs.Count=227,而實際上利用以下代碼可以得到748個對話框。(注意,版本號和安裝語言不同,以及文檔設(shè)置的不同,DIALOG數(shù)量可能都會有所不同)
請運行以下程序,以獲得更多的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)所在頁PPcount=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&\張,\&\實際上產(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'清除所有文件篩選器中的項目
.Filters.Add\所有WORD文件\\1'增加篩選器的項目為所有WORD文件
.AllowMultiSelect=True'允許多項選擇If.Show=-1Then'確定
ForEachvrtSelectedItemIn.SelectedItems'在所有選取項目中循環(huán)GetStr=GetStr&vbCrLf&vrtSelectedItemNextvrtSelectedItem
'MsgBoxGetStr
Selection.InsertAfterGetStr'列出所有文件名EndIfEndWithEndSub第三類對話框:MicrosoftCommonDialogControl,Version6,即CommonDialog,又稱通用對話框。
它有包括以下幾個對話框類型:打開文件對話框、顏色對話框、字體對話框、打印機對話框和幫助對話框共6個對話框設(shè)置。通用對話框的示例:
PrivateSubUserForm_Initialize()
OnErrorGoToErrHandle'如果發(fā)生錯誤轉(zhuǎn)至指定行標(biāo)簽處代碼'預(yù)置文件夾路徑為WORD選項中的文件位置CommonDialog1.InitDir=
Application.Options.DefaultFilePath(wdDocumentsPath)'設(shè)置文件類型過濾器
CommonDialog1.Filter=\所有Word文件(*.doc)|*.doc|文本文件(*.txt)|*.txt|所有文件(*.*)|*.*|文檔模板(*.dot)|*.dot|RTF文件(*.RTF)|*.RTF\
'指定文件類型項目(選定,或默認項)CommonDialog1.FilterIndex=1'顯示通用對話框之另存為對話框CommonDialog1.ShowSave'根據(jù)用戶設(shè)置保存文件
ActiveDocument.SaveAsCommonDialog1.FileNameExitSub
'啟用錯誤處理
ErrHandle:Unload(Me)EndSub
第四類對話框:隱含對話框(筆者之見),前臺具有對話框功能,而在VBA中卻不能直接調(diào)用的對話框,筆者姑且稱之為隱含對話框.也就是不能通過application.dialogs(**).show來直接調(diào)用的對話框.
比如保護文檔對話框,你在對話框中找不到,但你可以通過命令調(diào)用;你也可以通過代碼直接進行保護/解除文檔的工作(包括打開文檔密碼),比如:'簡化了的保護文檔\\解除文檔保護代碼:SubProtectDoc()
IfActiveDocument.ProtectionType=-1Then_ActiveDocument.Protect2,True,\EndSub
SubUnprotectDoc()
IfActiveDocument.ProtectionType-1Then_ActiveDocument.Unprotect\EndSub
而有些對話框,則在特定條件下,才存在,譬如,VBA工程保護密碼,有這個對話框,但你卻找不到寫相應(yīng)代碼的屬性與方法,只能通過調(diào)用命令,開啟對話框,然后使用SENDKEYS的方法預(yù)置對話框?qū)傩耘c內(nèi)容后,確定.譬如,VBA工程保護密碼的使用
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度拆除工程風(fēng)險評估及應(yīng)急預(yù)案
- 2025年度新能源項目場站建設(shè)與運營管理合同
- 2025年度電池儲能系統(tǒng)設(shè)計與集成服務(wù)合同
- 2025年度商業(yè)秘密保護保密勞動合同及保密協(xié)議
- 2025年度城市道路臨時停車位租賃及交通管理合同
- 2025年度彩鋼板隔墻快速安裝服務(wù)合同
- 2025年度體育賽事贊助商提成協(xié)議
- 2025年冷墩鋼合作協(xié)議書
- 如何選擇理財顧問計劃
- 多元文化背景下的藝術(shù)教育計劃
- 實驗動物飼養(yǎng)人員崗位競聘演講范文匯報報告范文
- 商業(yè)地產(chǎn)市場競品樓盤市場調(diào)研表格
- SMT失效模式分析PFMEA
- 國際貿(mào)易地理全套課件
- 家校共育-助孩子成長-家長會課件
- 叉形件工藝及車床夾具設(shè)計說明書
- GB/T 709-2019熱軋鋼板和鋼帶的尺寸、外形、重量及允許偏差
- GB/T 5916-2008產(chǎn)蛋后備雞、產(chǎn)蛋雞、肉用仔雞配合飼料
- GB/T 14177-2003林業(yè)機械便攜式割灌機和割草機試驗方法
- 安全測試工具、蹭網(wǎng)利器wifiphisher新增漢化版
- 中學(xué)教育-中學(xué)生心理健康量表參考范本
評論
0/150
提交評論