快速替换指定单词
有個愛學習的小朋友要突擊英語,需要做一些填空題目,重要的單詞已經用下劃線標記出來了。
制作填空題時,需要保留單詞的第一個字母,這樣可以提示答題者,后面是空格由于填空。
如果按人工逐個單詞去修改,估計要搞到地老天荒了,幸好有VBA這個法寶,當然這樣的處理肯定是Word VBA,而不是Excel VBA了。
代碼如下:
【代碼解析】
第3~11行代碼使用For…Next循環遍歷當前文檔的全部Sentence對象。
第4~10行代碼使用For…Next循環遍歷Sentence對象中的全部Word對象。
如果Word對象具備下劃線格式,那么將是需要處理為填空的單詞。
如果一個英文單詞后面是空格,那么Word對象是包括這個尾隨空格的,如果英文單詞之后是標點符號,那么Word對象不包含標點符號。選中Word對象可以看到效果,如下圖所示。
第6行代碼將其實位置后移一位,保留第一字母
第7行代碼根據Trim之后的字符長度變化,來判斷是否包含尾隨空格。如果有尾隨空格,在將Word對象的End字符位置前移一位,避免替換尾隨空格。
第8行代碼替換單詞為填空形式。
另一種實現方式,Word中可以進行按格式查找,代碼如下。
Sub Demo2()Set cont = ActiveDocument.ContentWith cont.Find.Font.Underline = wdUnderlineSingleDo While .Executecont.Start = cont.Start + 1cont.Text = Space(Len(cont.Text))LoopEnd With End Sub【代碼解析】
第4行代碼設置查找下劃線格式。
第5~8行循環查找全部匹配的單詞,并完成替換。
運行代碼,立刻搞定,學習也可以這么簡單!
總結
- 上一篇: Groovy的元编程
- 下一篇: 服务认证的介绍-实施依据及作用