使用Word的“藝術字”工具
發表時間:2024-06-19 來源:明輝站整理相關軟件相關文章人氣:
[摘要]Word 97中的“藝術字”工具(WordArt)能創建出各種各樣的文字,令人賞心悅目。如果能在VB中使用“藝術字”該有多好啊!由于有了面向對象技術中的代碼重用思想,現在就可以輕松地實現這個愿望了。 代碼重用主要有兩種形式,即二進制代碼重用與源代碼重用。前者是通過創建和使用對象來實現的;后者,...
Word 97中的“藝術字”工具(WordArt)能創建出各種各樣的文字,令人賞心悅目。如果能在VB中使用“藝術字”該有多好啊!由于有了面向對象技術中的代碼重用思想,現在就可以輕松地實現這個愿望了。
代碼重用主要有兩種形式,即二進制代碼重用與源代碼重用。前者是通過創建和使用對象來實現的;后者,顧名思義,是通過繼承實現的,后者在C++語言中被廣泛使用。由于Visual Basic不支持繼承,所以在VB中的代碼重用主要是指二進制代碼重用,并且VB算得上是二進制代碼重用的先驅。它的基本思路是:首先將待重用的代碼和數據編譯為二進制文件,稱為ActiveX服務器部件,然后在客戶應用程序里創建部件中類的對象來調用該部件。在VB中最為人們所熟悉的控件就是典型的二進制代碼重用的例子,每個控件都是一個ActiveX部件,在向窗體中添加一個控件的同時就創建了該控件類的一個新實例,然后通過調用該控件的屬性、方法和事件就重用了該控件中的代碼。
Word 97本身就是一個龐大的代碼部件,也就是說,Word 97中的整個對象庫是對外開放的,它允許其他應用程序對其進行編程。換句話說,Word 97中的對象能被其他應用程序所調用。而“藝術字”正是Word 97中的一種對象,因此可以方便地在VB中調用它。
要使用“藝術字”,必須先把Word 97的對象庫加入到程序中,然后創建一個對象變量來保持對Word應用程序對象的引用,可以用兩種方法創建對Word應用程序對象的引用,一種方法是直接聲明一個Word應用程序的對象變量,例如:
Dim w As New Word.Application
這種方法稱為前期綁定,它速度較快;另一種方法是聲明一個對象變量w,然后把用CreateObject函數創建出的Word應用程序對象賦給w,例如:
Dim w As Object
Set w=CreateObject("Word.Application")
這種方法稱為后期綁定,它速度較慢。在創建了Word應用程序對象后,就可以以代碼的方式像在Word中進行具體操作那樣創建新文檔,并在文檔中加入“藝術字”。在創建好“藝術字”之后,用剪貼板將其傳給窗體。在創建Word應用程序對象時,VB會在后臺自動打開Word,因此,在程序結束時,應該先關閉Word,其代碼如下:
w.Quit wdDoNotSaveChanges
下面用一個具體的項目實例幫你輕松學習如何在VB中使用Word對象。
(1)啟動Microsoft Visual Basic 5.0,選擇“標準EXE”,創建一個新項目;
(2)選擇“項目”菜單中的“引用”選項,顯示“引用”對話框,選中"Microsoft Word 8.0 Object Library"和"Microsoft Office 8.0 Object Library"兩項,單擊“確定”按鈕(見圖1);
(3)將下列代碼加入到Form1的“通用” “聲明”選項中:
Dim w As New Word.Application
(4)將下列代碼加入到Form1的Load事件中:
Private Sub Form_Load()
w.Documents.Add.Select
w.ActiveDocument.Shapes.AddTextEffect(0,"藝術字","隸書",48#,-1,0,183.75,70.5).Select
End Sub
這里顯示的字樣是隸書的“藝術字”三個字,你可以根據自己的喜好來改變字體(如宋體、楷體等)以及改變字樣;
(5)將下列代碼加入到Form1的Click事件中:
Private Sub Form_Click()
w.Selection.ShapeRange.TextEffect.PresetTextEffect = Int(Rnd(1) * 30)
w.Selection.ShapeRange.TextEffect.FontName = "隸書"
w.Selection.Copy
Picture = Clipboard.GetData()
End Sub
(6)將下列代碼加入到Form1的Unload事件中:
Private Sub Form_Unload(Cancel As Integer)
w.Quit wdDoNotSaveChanges
Set w = Nothing
End Sub
(7)在窗體上放置一個按鈕,其Caption屬性為"Exit",并在它的Click事件中處理退出:
Private Sub Command1_Click()
End
End Sub
(8)運行程序后,當鼠標在窗體上單擊時,會隨機地顯示出一種“藝術字”字型(Word中共有30種內建“藝術字”字型),下圖分別給出了隸書與宋體兩種不同字體的字樣為“藝術字”的幾種情形。
同樣,由這個實例可以舉一反三,即我們也可以在VB中使用Excel的圖表、PowerPoint的幻燈片,因為Office 97中的產品都是代碼部件,這些產品中的對象庫都是可以被其他應用程序調用的,所以只要了解這些對象的外部接口(屬性、方法和事件),就可以方便地調用這些對象了。