版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 44798-2024復(fù)雜集成電路設(shè)計保證指南
- 重慶市秀山土家族苗族自治縣新星初級中學(xué)2024-2025學(xué)年九年級上學(xué)期期中考試數(shù)學(xué)試題(無答案)
- 高中歷史 1.2 曠日持久的戰(zhàn)爭教案 新人教版選修3
- 2024年春季九年級歷史下冊 第三單元 第一次世界大戰(zhàn)和戰(zhàn)后初期的世界 第11課 蘇聯(lián)的社會主義建設(shè)教案 新人教版
- 八年級生物上冊 6.15.1人體內(nèi)物質(zhì)的運(yùn)輸?shù)?課時教案 (新版)蘇科版
- 2024-2025學(xué)年高中生物 第五章 章末整合提升教案 浙科版必修2
- 2024-2025學(xué)年九年級化學(xué)下冊 第10單元 酸和堿教案 (新版)新人教版
- 八年級地理上冊 4.2 農(nóng)業(yè)參考教案 (新版)新人教版
- 高考地理一輪復(fù)習(xí)第十一章交通運(yùn)輸布局與區(qū)域發(fā)展第二節(jié)交通運(yùn)輸布局對區(qū)域發(fā)展的影響課件
- 高考地理一輪復(fù)習(xí)第十九章環(huán)境安全與國家安全第二節(jié)環(huán)境污染、生態(tài)保護(hù)與國家安全課件
- 2024-2030年中國熱泵熱水器(空氣源熱泵)行業(yè)運(yùn)營模式及發(fā)展策略分析報告版
- 吊裝起重作業(yè)安全培訓(xùn)課件
- 職校開學(xué)第一課課件:誰說職業(yè)沒前途
- 行政復(fù)議法-形考作業(yè)4-國開(ZJ)-參考資料
- GB/T 5762-2024建材用石灰石、生石灰和熟石灰化學(xué)分析方法
- 設(shè)備安裝與維修培訓(xùn)課件
- 廣東開放大學(xué)(專科)工商企業(yè)管理專業(yè) 案例分析報告
- 2023-2024學(xué)年四川省成都市高一上英語期末考試題(含答案和音頻)
- GB/T 29712-2023焊縫無損檢測超聲檢測驗(yàn)收等級
- 特種設(shè)備鍋爐日管控、周排查、月調(diào)度主要項(xiàng)目及內(nèi)容表
- GB/T 709-2019熱軋鋼板和鋼帶的尺寸、外形、重量及允許偏差
評論
0/150
提交評論