怎樣在Word中用VBA操作表格

無論線上課程還是線下課堂,VBA課程大多都是以Excel為中心,因為整日使用Excel接觸數據處理的朋友是最有可能關注VBA的人群。不過VBA的設計宗旨是讓辦公軟體的各種操作都能夠自動化完成,而不僅僅是對數字的計算和比較。所以很多同學在接觸Excel VBA後,很快也對其他Office中的VBA開始感興趣,比如使用VBA自動對幾百個word文件統一排版等等。比如前幾天就有同學在我們官網答疑論壇(課程答疑與技術交流)上發帖詢問,怎樣使用VBA在裡面的表格中自動填充內容?(如何在word中用VBA移動游標和輸入文字 - 技術交流 )現在我們就以此為例,讓大家形象的感受一下wordVBA與我們學習過的excelVBA之間的異同。

假如我有下面這樣一個word文件,其中帶有一張表格(注意:是在word中插入的表格,不是從excel中直接拷貝到word中的,這兩種表格有本質的差別)。

那麼怎樣在VBA代碼中修改這個表格的內容呢?其實很簡單,我們只要用Excel同樣的方法,找到Word的「開發工具」選項卡,進入VBA編輯器。然後插入一個模塊,並寫下幾行代碼即可:

這樣,程序一運行,表格第一行第一列就發生了變化:

是不是很簡單?那麼這段代碼是什麼意思呢?我想即使不解釋,大家應該也能猜個八九不離十,只要我們把它與同樣功能的Excel VBA程序放在一起比較一下就OK了:

我們看到,上面的是在excel中修改A1單元格的代碼,而下面的就是在word中修改第一張表格第一行第一列的代碼,是不是高度相似呢?

沒錯,就像本專欄前面一篇文章《PPT中怎樣使用VBA》中講過的,不同Office對象的VBA在語法和思路上完全相同,區別主要體現在對象體系(類名、方法、屬性)上。比如本例中,Document(一個word文檔)就相當於Excel中的WorkBook(工作簿),Text屬性就相當於Value屬性等等。更讓我們欣喜的是,既然都是表格,那麼順理成章的,它們的單元格引用方式都一樣,都是我們最最熟悉的Cells(行,列)!我想,凡是學習過ExcelVBA的小夥伴,現在應該對WordVBA也不會再莫明覺厲了吧。

在《全民一起VBA提高篇》的第34回里,我們也對word VBA作了一個簡單的介紹。,就會為大家簡介其他Office中的VBA應用。雖然只是簡單的介紹一下基本區別于思路,但相信大家看完後應該會有信心和能力自學掌握在Word等軟體中編程的基本技能。而更高級的技巧,我們會在未來的《實戰篇》中專題講解。

推薦閱讀:

Excel VBA 實戰(1)
【Excel VBA】- 使用CDO批量發送郵件(二)
【VBA初學者教程】- 第二章 了解對象、屬性、方法和事件:理論知識
Excel VBA 實戰(3)

TAG:VBA | MicrosoftOffice | Word文档处理 |