?? 050101.htm
字號:
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>vb study</title>
<style>
<!--
td {font-size: 9pt}
A:link {text-decoration: none; color: #0033cc;font-size: 9pt}
A:visited {text-decoration: none; color: #0066CC;font-size: 9pt}
A:active {text-decoration: none; color: #ff0000; font-size: 9pt}
A:hover {text-decoration: underline; color: #000000;font-size: 9pt}
-->
</style>
</head>
<body>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="98%">
<tr>
<td width="100%"><a href="#">你的位置</a>:<a href="http://www.xxby.com" target="_blank">華生小屋</a>--<a href="#">VB學習</a>--<a href="#">對象庫</a></td>
</tr>
<tr>
<td width="100%">
<p align="center">對象庫</td>
</tr>
<tr>
<td width="100%"><br>
MS Scripting Runtime對象庫<br>
該對象庫可以用來完成許多驅動器和文件系統(tǒng)的操作,很有用.它包含在scrrun.dll文件中。 其頂層對象為Scripting.
<p>文件系統(tǒng)對象FileSystemObject對象<br>
該對象是Scripting對象的子對象,聲明為Dim lxn as new Scripting.FileSystemObject. 這個對象包含大量的方法,以及1個重要的集合--本機驅動器集合。<br>
★ Drives集合:本機驅動器集合,用Drives(驅動器號)來指定每個驅動器,注意驅動器號為字母A-Z,不能用數(shù)字作為集合"下標",要特別注意,如獲取C驅動器的可用空間大小:Print lxnDrv.Drives("C").AvailableSpace,其中l(wèi)xnDrv為一個FileSystemObject對象變量,在Drives驅動器集合中,每一個Drive元素代表一個Drive對象,也可用FileSystemObject對象的GetDrive方法獲得一個指定的驅動器賦予Drive對象變量,每個Drive對象具有以下屬性:<br>
本驅動器的可用空間大小(字節(jié)):AvailableSpace屬性;<br>
本驅動器的總空間大小(字節(jié)):TotalSize屬性;<br>
驅動器的類型:DriveType屬性;可能的返回值有:Fixed(值2):固定驅動器(硬盤);Removable(值1):可移動驅動器(軟盤);CDRom(值4):光盤驅動器;Ramdisk(值5):隨機存儲驅動器;Remote(值3):網(wǎng)絡驅動器;Unknown(值0):未知類型。<br>
本驅動器采用的文件系統(tǒng)類型(如FAT32):FileSystem屬性;<br>
本驅動器是否準備好:IsReady屬性;(可用此屬性檢測光驅中是否有光盤)<br>
本驅動器的根目錄(如C:\):RootFolder屬性;<br>
本驅動器卷標:VolumeName屬性;<br>
本驅動器的序列號:SerialNumber屬性;<br>
本驅動器的網(wǎng)絡共享名:ShareName屬性;<br>
本驅動器的剩余空間大小:FreeSpace屬性;(含壞扇區(qū),故不全同于可用空間)<br>
FileSystemObject對象有以下一些主要方法:<br>
★ 移動文件:MoveFile方法,將文件從一個路徑移到另一路徑。(相當于剪切文件)如:lxnDrv.MoveFile "c:\abc.wav","e:\xx.wav"。<br>
★ 移動目錄:MoveFolder方法:會移動目錄下包含的全部文件。 <br>
★ 復制文件:CopyFile方法,相當于VB內置的FileCopy語句;<br>
★ 復制整個目錄:CopyFolder方法,會復制這個目錄下的所有文件,如:<br>
lxnDrv.CopyFolder "c:\viavoice" "e:\lxn"<br>
★ 刪除文件:DeleteFile方法:刪除文件,說明:其第一個參數(shù)是要刪除的文件,第二個參數(shù)是說明是否強行刪除(如果文件是只讀或隱含等)。相當于Kill語句。<br>
★ 刪除目錄:DeleteFolder方法;會刪除目錄下所有文件,注:不會進入回收站。<br>
★ 創(chuàng)建文本文件:CreateTextFile方法;如:lxnDrv.CreateTextFile "c:\abc.txt"。<br>
★ 創(chuàng)建目錄:CreateFolder方法;相當于Mkdir語句。<br>
★ 獲得文件擴展名:GetExtensionName方法,Print lxnDrv.GetExtensionName("c:\a.wav")<br>
★ 打開文本文件:OpenTextFile方法;<br>
★ 獲取輸入/輸出文本流:GetStandardStream方法:第一個參數(shù)可選StdIN(值0)輸入流或stdOut(值1)輸出流。??<br>
★ 獲取一個文件夾(目錄)對象:用GetFolder方法將一個文件夾對象賦給一個文件夾對象變量,然后讀取該文件夾的有關屬性。<br>
★ 獲取一個文件對象:用GetFile方法將指定路徑的文件賦予一個文件對象變量,以讀取文件的有關屬性,如獲取文件的創(chuàng)建時間,修改時間等。例如:<br>
Dim lxn As New Scripting.FileSystemObject<br>
Dim yqs As File<br>
Private Sub Command1_Click()<br>
Set yqs = lxn.GetFile("e:\cde.wav")<br>
Print yqs.DateCreated<br>
End Sub<br>
文件對象File和文件夾對象Folder的屬性如下:<br>
文件(夾)的創(chuàng)建時間:DateCreated屬性;<br>
文件(夾)的最后訪問時間:DateLastAccessed屬性;<br>
文件(夾)的最后修改時間:DateLastModified屬性;<br>
文件(夾)大小(字節(jié)數(shù)):Size屬性;<br>
文件(夾)類型:Type屬性;如返回值"文本文檔"。<br>
文件(夾)所在的全路徑:Path屬性;<br>
文件(夾)的DOS格式短文件名:ShortName屬性;<br>
文件(夾)的DOS格式路徑:ShortPath屬性;<br>
文件(夾)所在的驅動器:Drive屬性;<br>
文件(夾)不含路徑的純文件(夾)名:Name屬性;<br>
復制、刪除、移動文件(夾):Copy方法;Delete方法;Move方法。<br>
另外,文件夾對象即目錄對象獨有以下屬性:<br>
Files集合:該文件夾包含的文件集合;<br>
SubFolders集合:該文件夾包含的子目錄(子文件夾)集合;<br>
是否為根目錄:IsRootFolder屬性;<br>
而文件對象獨有以下屬性:<br>
以文本流方式打開文件:OpenAsTextStream方法。<br>
====================================<br>
MS Internet Controls對象庫<br>
這是IE瀏覽器對象庫,與"部件"中的WebBrowser控件一致,但功能更多。<br>
聲明IE瀏覽器:Dim lxn As New SHDocVw.InternetExplorer。瀏覽器對象internet explorer包含在SHDocVw頂層對象之內。下例是簡單使用IE對象的代碼:<br>
Dim lxn As New SHDocVw.InternetExplorer<br>
Private Sub Form_Load()<br>
lxn.Visible = True '顯示瀏覽器窗口。<br>
lxn.Navigate "c:\my documents\my webs\index.htm" '鏈接到指定頁面。<br>
lxn.AddressBar = False '不在窗口中顯示地址欄。<br>
lxn.MenuBar = False '不在窗口中顯示菜單欄。<br>
lxn.ToolBar = False '不顯示工具欄。<br>
lxn.StatusBar = False '不顯示狀態(tài)欄。<br>
End Sub </p>
<p>Office對象庫:<br>
在VB中可以控制OFFICE應用軟件自動實現(xiàn)某些功能,這就是VBA。<br>
在VB環(huán)境中可以在對象庫中將Word,Excel等對象庫加載,然后用對象變量對其進行操作和控制。使Word或Excel就象VB中的1個控件那樣,用它們包含的方法和屬性及子對象來實現(xiàn)一切可以實現(xiàn)的操作功能。舉例說明:①先當然是要在對象庫中加載Office對象庫,這里加載MS Excel 9.0 Object Library.②Excel就變成了程序中的'控件',要將控件添加到程序中去變?yōu)?amp;quot;對象",就要定義對象變量,最簡單就是Dim lxn as new Excel.Application不過一般常用的還是Dim lxn as Object ; Set lxn=CreateObject("Excel.Application"),需要說明的經(jīng)驗是所有的Office對象庫,我們都用其Application對象,記住這點就行了。③接下來就要說明1下Excel.Application對象中到底有些什么東西。我們就干脆把"Excel.Application對象"叫做"Excel對象"得了,先想,Excel下含有什么呢?--在Excel下有工作簿,在工作簿下有工作表;就這兩層父子關系,在Excel對象下包含有WorkBooks工作簿集合,在一個WorkBook下包含有WorikSheets工作表集合;就這兩層"子對象"或"子子對象"。記住了。現(xiàn)在剛剛定義了Excel對象,這里就要為這個新的空Excel對象建立工作簿子對象,和工作表子子對象,以供我們對工作表操作,這樣:<br>
Dim lxnBook as Object<br>
Dim lxnSheet as Object <br>
Set lxnBook=lxn.WorkBooks().Add 怎樣?WorkBooks集合也有Add方法,廢話。<br>
Set lxnSheet=lxnBook.WorkSheets("sheet1")新建1個工作簿時會自動新建3個表,所以這里就不用Add,直接指定并賦給變量lxnSheet就行了,這是一點特殊之處,記住就行。④現(xiàn)在就等于我們打開了Excel,且又創(chuàng)建了1個缺省工作簿,并將'光標'就放到了Sheet1上,就等我們在單元格中輸入數(shù)據(jù)了,告訴你--給Excel對象'Range(單元格地址)'(指定1個'單元格對象')的Value屬性賦值就行了。如:lxn.Range("d3").Value = "李新寧",在D3單元格寫入"李新寧"三個字。再如給C4-G7單元格區(qū)域中每個單元格賦值0:lxn.Range("C4:G7").Value=0.⑤任意地對單元格進行操作吧。最后要保存工作簿,用工作簿子對象的SaveAs方法,格式:工作簿對象變量.SaveAs 路徑和文件名。注意要把保存的文件名后綴寫為xls,以便與Excle程序關聯(lián)。如:lxnBook.SaveAs "c:\abc.xls",大致完了,掃尾工作是將引用的對象庫從內存中清除,lxn.Quit,畢。<br>
上面是個從頭到尾都在VB中操作Excel的例子。操作Word也一 樣,不過Word對象包含的子對象不同,在定義好Word對象后,應新添1個Document文檔子對象(注:更常用Selection對象),并在Document文檔子對象下新添1個段落子子對象,然后在段落中加入文本,并用文檔子對象的SaveAs方法保存文檔。如下例:<br>
Dim lxn As New Word.Application 'Word對象<br>
Dim doc As Document 文檔子對象。<br>
Dim duan As Paragraph '段落子子對象<br>
Private Sub Command1_Click()<br>
Set doc = lxn.Documents().Add '新建文檔。<br>
Set duan = doc.Paragraphs().Add '新添1段。<br>
duan.Range.Text = "你好,這一篇文章就這一行文字。" 在段中寫入文字。.<br>
doc.SaveAs "c:\abcd.doc" '保存文檔。<br>
lxn.Quit '這句別丟,否則程序退出后,Word仍在內存中,它可會占大量內存。<br>
End Sub <br>
技巧:你是不是為Word對象所包含的方法屬性和子對象太多而感苦惱呢?其實不要緊,有一個簡便方法可以幫助我們迅速掌握它們,就是在Word軟件中,單擊"工具"菜單"宏"中的"錄制宏"菜單項,這時你所做的操作都會被VBA用代碼的形式記錄下來,這些代碼用的就是Word對象庫中的方法屬性及子對象,所以,只要我們有意去嘗試某個操作如存盤或打印等,Word就會自動生成對應的宏代碼,只要打開宏代碼,我們就能知道--哦,原來這幾句代碼(中用的方法屬性)就是實現(xiàn)這種功能的。妙!說明:在宏代碼中,經(jīng)常出現(xiàn)1個對象Selection,它是Word.Application即Word對象的子對象。<br>
事實上,我們要實現(xiàn)自動的操作,通常的作法都是把Word中錄制的宏代碼粘貼到VB中去,以省去麻煩的一步一步的寫代碼,因為這樣做太費事且又抽象,用Word的錄制宏功能,可給絕大部分操作自動生成代碼,很輕松地就可生成數(shù)量可觀的大量代碼,完成許多步操作,在將代碼粘貼到VB中后,要作一點加工:就是把全部宏代碼包含到1個With (word對象)…End With結構中,然后在每個Selection子對象前加上個點號"."。值得提醒的三點是:1,在錄制宏的過程中,不是所有的操作都能被宏正確無誤地識別,不要使用"Shift+方向鍵"選中某一處文字,進行格式化(如調整字體字號對齊方式)等操作,宏難于精確定位你選中了文檔中哪幾個位置上的文字,有時會搞錯;要格式化某處文字,應在輸入這些文字前設好格式;2,在錄制宏的過程中,如果向文檔輸入文本,盡量從頭到尾的順序輸入,不要總是移動插入點,在這個位置插入幾個字,在那個位置插入幾個字,這樣宏也難于精確定位,有時會搞錯;3,錄制宏的過程中,盡量多用工具條上的按紐來完成操作,少用Word的菜單,因為每一步菜單操作幾乎都會自動生成一大段的with…end with結構宏代碼,雖然全面,但很多缺省選項其實都可不要,而工具欄上的1個按紐一般就只生成1句宏代碼,精練!高效。</p>
<p align="center">
<br>
< <a href="040111.htm">上一頁</a>--<a href="http://www.xxby.com" target="_blank">華生小屋</a>--<a href="050201.htm">下一頁</a>
><br>
</td>
</tr>
</table>
</center>
</div>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -