[黑科技] WPS通過VB巨集函式實現自編號功能
這篇文章主要是作為李老師《演算法設計與分析》助教課程中,與她交流,學到的一些基礎知識。它主要是講述Word通過巨集函式設定一些操作,比如在Word全文中替換一些符號;再如對Word上角表進行編號,如果刪除中間某個值,執行巨集函式自動編號;對Word中所有圖片進行大小統一整合;文章豎著排版等操作。Word巨集函式主要是基礎VB編寫的,希望這篇文章對你有所幫助~
一. WPS實現巨集函式可用
Office中Word的巨集函式直接可以使用,而WPS需要安裝一個軟體後才能使用。開啟WPS Word如下圖所示,巨集是不能使用的。
這時需要下載VBA for WPS並安裝才能使用。下載地址:
https://yun.baidu.com/share/link?shareid=2773182689&uk=892671164
下載安裝如下圖所示:
安裝完後可以設定巨集函式,如下圖所示:
點選"巨集",然後"建立"巨集函式,如下圖所示,取名為test。
建立後如下圖所示,可以看到是VB程式碼進行編寫的。
WPS需要儲存為帶巨集函式的格式,如下圖所示。
然後執行巨集函式如下圖所示,點選"執行"即可,如下圖所示。
這裡,如果想好好研究這個,可以看看VB一些基礎書籍,程式就那回事。我簡單看了《VB從入門到精通》後,開始寫相應功能的。
二. 編寫巨集函式實現自編號
Visual Basic支援一個物件集合,該集合中的物件直接對應於Microsoft Word 97中的元素,並且通過使用者介面,使用者熟悉這些元素中的絕大多數。
例如,Document 物件代表了一個開啟的文件,Bookmark物件代表了一個文件中的書籤,而Selection物件則代表了在一個文件視窗窗格中的選定內容。在Word中,每一類元素-文件、表格、段落、書籤、域等等-都可以用Visual Basic的物件來表示。要在Word中自動執行任務,可以使用這些物件的方法和屬性。
下面簡單講解巨集函式實現一些功能。
Sub test()
'
' test Macro
'
Dim sLineNum3 As String '行號(文字)
Dim nLineNum '行號(數值)
Dim i As Long
Title = "輸入編號資訊"
a1 = "請輸入總編號開始號:"
b1 = InputBox(a1, Title)
End Sub
執行巨集函式如下圖所示:執行結果如下圖所示,彈出介面輸入:
下面是完整的程式碼,如下所示:
Sub test()
'
' test Macro
'
'定義變數
Dim sLineNum3 As String '行號(文字)
Dim nLineNum '行號(數值)
Dim sLineNum As String '行號(文字)
Dim sLineNum1 As String '行號(文字)
Dim sLineNum2 As String '行號(文字)
Dim selRge As Range
Dim i As Long
Dim x As Long
Dim y As Long
Dim k As Long
'輸入行號對話方塊
Title = "輸入編號資訊"
a1 = "請輸入總編號開始號:"
b1 = InputBox(a1, Title)
'Val函式將數字字串換成數值
y = 200000 + Val(b1) - 1
i = 1
For k = 1 To 20
sLineNum1 = Str(i + y) '200001
sLineNum1 = LTrim(sLineNum1) '移除字串最左邊的空白字元
sLineNum1 = Right(sLineNum1, 5) '生成行號格式"00001"
'行號前加"/"
'sLineNum = "/" & b2 & sLineNum
'sLineNum2 = sLineNum1 + sLineNum
sLineNum2 = sLineNum1
'移動游標至當前行首 Selection.HomeKey wdLine
Selection.HomeKey Unit:=wdLine
'選擇從游標至當前行首的內容 Selection.HomeKey wdLine, wdExtend
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
sLineNum3 = Selection.Text
sLineNum3 = Left(sLineNum3, 3) '從左邊獲取每行前3個字元
If sLineNum3 = "%%%" Then '替換行號
Selection.Find.Execute FindText:="%%%", ReplaceWith:=sLineNum2
i = i + 1
End If
Selection.MoveDown Unit:=wdLine, Count:=1
Next k
End Sub
現在Word中內容如下所示:然後執行"巨集",執行如下所示:
執行結果如下圖所示:
下面補充一些程式碼,常見的操作Word巨集的 函式。
參考:http://wangye.org/blog/archives/135/
http://blog.sina.com.cn/s/blog_5e646c1f0100u24w.html
Sub MoveToCurrentLineStart()
' 移動游標至當前行首
' Selection.HomeKey wdLine
Selection.HomeKey unit:=wdLine
End Sub
Sub MoveToCurrentLineEnd()
' 移動游標至當前行尾
' Selection.EndKey wdLine
Selection.EndKey unit:=wdLine
End Sub
Sub SelectToCurrentLineStart()
' 選擇從游標至當前行首的內容
' Selection.HomeKey wdLine, wdExtend
Selection.HomeKey unit:=wdLine, Extend:=wdExtend
End Sub
Sub SelectToCurrentLineEnd()
' 選擇從游標至當前行尾的內容
' Selection.EndKey wdLine, wdExtend
Selection.EndKey unit:=wdLine, Extend:=wdExtend
End Sub
Sub SelectCurrentLine()
' 選擇當前行
' Selection.HomeKey wdLine
' Selection.EndKey wdLine, wdExtend
Selection.HomeKey unit:=wdLine
Selection.EndKey unit:=wdLine, Extend:=wdExtend
End Sub
Sub MoveToDocStart()
' 移動游標至文件開始
' Selection.HomeKey wdStory
Selection.HomeKey unit:=wdStory
End Sub
Sub MoveToDocEnd()
' 移動游標至文件結尾
' Selection.EndKey wdStory
Selection.EndKey unit:=wdStory
End Sub
Sub SelectToDocStart()
' 選擇從游標至文件開始的內容
' Selection.HomeKey wdStory, wdExtend
Selection.HomeKey unit:=wdStory, Extend:=wdExtend
End Sub
Sub SelectToDocEnd()
' 選擇從游標至文件結尾的內容
' Selection.EndKey wdStory, wdExtend
Selection.EndKey unit:=wdStory, Extend:=wdExtend
End Sub
Sub SelectDocAll()
' 選擇文件全部內容(從WholeStory可猜出Story應是當前文件的意思)
Selection.WholeStory
End Sub
Sub MoveToCurrentParagraphStart()
' 移動游標至當前段落的開始
' Selection.MoveUp wdParagraph
Selection.MoveUp unit:=wdParagraph
End Sub
Sub MoveToCurrentParagraphEnd()
' 移動游標至當前段落的結尾
' Selection.MoveDown wdParagraph
Selection.MoveDown unit:=wdParagraph
End Sub
Sub SelectToCurrentParagraphStart()
' 選擇從游標至當前段落開始的內容
' Selection.MoveUp wdParagraph, wdExtend
Selection.MoveUp unit:=wdParagraph, Extend:=wdExtend
End Sub
Sub SelectToCurrentParagraphEnd()
' 選擇從游標至當前段落結尾的內容
' Selection.MoveDown wdParagraph, wdExtend
Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
End Sub
Sub SelectCurrentParagraph()
' 選擇游標所在段落的內容
' Selection.MoveUp wdParagraph
' Selection.MoveDown wdParagraph, wdExtend
Selection.MoveUp unit:=wdParagraph
Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
End Sub
Sub DisplaySelectionStartAndEnd()
'顯示選擇區的開始與結束的位置,注意:文件第1個字元的位置是0
MsgBox ("第" & Selection.Start & "個字元至第" & Selection.End & "個字元")
End Sub
Sub DeleteCurrentLine()
' 刪除當前行
' Selection.HomeKey wdLine
' Selection.EndKey wdLine, wdExtend
Selection.HomeKey unit:=wdLine
Selection.EndKey unit:=wdLine, Extend:=wdExtend
Selection.Delete
End Sub
Sub DeleteCurrentParagraph()
' 刪除當前段落
' Selection.MoveUp wdParagraph
' Selection.MoveDown wdParagraph, wdExtend
Selection.MoveUp unit:=wdParagraph
Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
Selection.Delete
End Sub
最後希望文章對你有所幫助,如果文章中存在錯誤或不足之處,還請海涵~後面肯恩會補充一些實用的功能,娜美人生,精彩人生。
(By:Eastmount 2017-03-15 中午1點 http://blog.csdn.net/eastmount/)
相關文章
- [Office] WPS Excel通過新增巨集實現多張表格合併Excel
- SQL語句 實現自動編號功能SQL
- 利用 Redis 生成序列號的功能實現編號自增Redis
- c語言中通過函式指標實現函式過載C語言函式指標
- 巨集函式函式
- 前端黑科技:使用 JavaScript 實現網頁掃碼功能前端JavaScript網頁
- 利用動態建立自動化介面實現VB的函式指標呼叫 (轉)函式指標
- 使用VB實現OLE拖放功能
- js實現函式過載JS函式
- 編譯通過的 foo函式返回一個int編譯函式
- Mysql實現自增長編號,日期+序列MySql
- 利用指標實現strncmp函式功能指標函式
- PHP中實現函式過載PHP函式
- javascript函式過載的實現JavaScript函式
- javascript如何實現函式過載JavaScript函式
- 不使用日期函式實現ADD_MONTHS函式功能函式
- 用匯編實現add函式函式
- 妙用AccessibilityService黑科技實現微信自動加好友拉人進群聊
- WPS表格工程函式函式
- 不使用日期函式實現ADD_MONTHS函式功能(二)函式
- C#函式實現的小功能集合C#函式
- 008 通過連結串列學習Rust之實現Peek函式Rust函式
- python中實現函式過載Python函式
- javascript模擬實現函式過載JavaScript函式
- PHP中實現函式過載薦PHP函式
- Vue通過Blob物件實現匯出Excel功能Vue物件Excel
- 通過HTML5的getUserMedia實現拍照功能HTML
- vb如何使用ftp函式,vb如何使用ftp函式要知道這些FTP函式
- [PY3]——函式——函式註解 | 實現型別檢查功能函式型別
- (函式)實現strstr函式函式
- 實現“自動化”的WPS素材庫
- VB實現SQL Enterprise Manager功能 (轉)SQL
- MySQL 函式索引功能終於可以實現了MySql函式索引
- 自編函式做t檢驗函式
- 利用WPS表格函式自動彙總中考報名冊函式
- Etcd 使用場景:通過分散式鎖思路實現自動選主分散式
- 在 Python 中實現函式過載Python函式
- 建構函式與new的彙編實現函式