日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Word VBA:查找隐藏字符

發布時間:2023/12/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Word VBA:查找隐藏字符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、問題復述

二、大家的討論

三、問題的結論

四、手動操作方法

1.顯示隱藏文字

2.設置隱藏文字

3.查找隱藏文本

4.得出的結論

五、用Word VBA代碼查找隱藏文本

1.沒有設置【顯示隱藏文字】

2.設置【顯示隱藏文字】后

六、總結


一、問題復述

問題意思:【在Word VBA中,如果需要提取Word文檔的的隱藏字符,需要先將隱藏字符取消隱藏才能用查找(替換)方法找到相應字符。那么不顯示隱藏字符能查找到對應字符嗎?】

前幾天,在一個VBA的交流群里有人提出了這個問題:

圖1.1 問題原文

二、大家的討論

因為關于Word隱藏字符,大家很少用到,Word VBA不像Excel VBA那樣普及,多數人是不知道或不確定。

圖2.1 大家討論01

題主也@了我,看看我能否解決。所以實測了一下,順便把【Word隱藏字符】相關的內容整理一下。

圖2.2 大家討論02

三、問題的結論

如果題主說的【取消隱藏】指的是在文本字體中將【隱藏】不勾選,即下圖內容

圖3.1

則:

不取消隱藏,可以提取到隱藏文本。但是這樣的話,如果文字由隱藏變為不隱藏,和其他內容無區別時,也不可能 提取到。

如果題主說的【取消隱藏】指的是下文這部分所述【顯示隱藏文字】

圖3.2

則不取消隱藏,不可以提取到隱藏文本。

但是有個前提條件:在【文件】-【選項】-【顯示】中,勾選【隱藏文字】。(也就是說要顯示隱藏文字)

四、手動操作方法

1.顯示隱藏文字

這樣做的目的是在后面設置了隱藏字符時,才可以看到效果。

圖4.1 單擊【文件】選項卡

圖4.2點擊【選項】

圖4.3 顯示隱藏文字的2種方法

2.設置隱藏文字

(1)隨機選取一些文本

*按住【ctrl】可以選中多處文本

圖4.4 選擇文本

(2)文本字體設置隱藏屬性

*點擊【字體】右下角,在彈出的對話框中,勾選【隱藏】,【確定】。

圖4.5 將文本設置為隱藏字符

(3)查看編輯視圖

在編輯視圖中,可以看見,每個隱藏文字下方都有【虛線標記】。

圖4.6 隱藏文字的編輯視圖

(4)查看打印預覽視圖

圖4.7 打印效果圖

對比效果:

圖4.8 對比打印視圖和編輯視圖的意外差異

(5)編輯視圖(普通視圖)不顯示隱藏文字的效果

如果將【四】-【1】中的【顯示隱藏文字】改為不顯示

4.9 編輯視圖不顯示隱藏文字的效果

則我們編輯時肉眼看不到這些隱藏文字。

排版時,一般不建議編輯視圖不顯示這些隱藏字符。因為編輯狀態,我們需要知道文檔里這種字符真正的組成,這與打印效果是相互不沖突的,也只有編輯時將各種隱藏標記處理好,才能打印出好的紙質文件。

(6)由此可知
隱藏字符在默認情況下是不會被打印出來。

3.查找隱藏文本

(1)步驟:

A.點擊【開始】-【替換】,點擊【查找內容】框,點擊左下角的【格式】-【字體】

圖4.10 高級查找-【字體】

B.在彈出的【字體】對話框中,將【效果】-【隱藏】勾選上,點擊確定。

圖4.11【字體】-【效果】-勾選【隱藏】

C.查找結果

a.如果上面【1.】步驟中沒有設置【顯示隱藏文字】的話,點擊【查找下一處】,會顯示【未查找到結果】

圖4.12 沒有設置【顯示隱藏文字】時查找

b.如果上面【1.】步驟中有設置【顯示隱藏文字】的話,點擊【查找下一處】,會逐個顯示每個隱藏字符串,直到完成全文查找一遍。

圖4.13 設置【顯示隱藏文字】后查找

4.得出的結論

在Word高級查找中,如果需要手動查找到隱藏文字,需要將將在【選項】-【顯示】中將【隱藏文字】設置為顯示狀態。

五、用Word VBA代碼查找隱藏文本

1.沒有設置【顯示隱藏文字】

如果上面【四、】【1.】步驟中沒有設置【顯示隱藏文字】的話,運行程序,內容顯示為空,但開始和結束位置可以找到。

A.代碼

Sub 查找隱藏文本()With ActiveDocument.Content.Find '查找全文.ClearFormatting '清除查找框格式.Format = True '查找包含格式.Font.Hidden = True '查找字體格式為隱藏的.Forward = True '向前查找.Wrap = wdFindStop '查找完成后停止Do While .Execute '如果找到了'分別打印:找到的內容,找到內容的開始位置,找到內容的結束位置Debug.Print .Parent, .Parent.Start, .Parent.EndLoopEnd With End Sub

B.執行結果

圖5.1 不設置【顯示隱藏文字】時,VBA查找結果

2.設置【顯示隱藏文字】后

如果上面【四、】【1.】步驟中設置【顯示隱藏文字】后,運行程序,內容、開始和結束位置都可以找到。

A.代碼

*可先用變量x記錄下文檔是否顯示隱藏文字的狀態,然后設置為顯示;提取完成后,如果有必要,可恢復到原始狀態。

Sub 查找隱藏文本1()Dim x As Boolean '定義x為布爾型,用于記錄文檔是否顯示了隱藏文字x = ActiveDocument.ActiveWindow.ActivePane.View.ShowHiddenText '文檔是否顯示了隱藏文字的值賦值給xDebug.Print xActiveDocument.ActiveWindow.ActivePane.View.ShowHiddenText = True '將文檔設置為顯示隱藏文字的狀態With ActiveDocument.Content.Find '查找全文.ClearFormatting '清除查找框格式.Format = True '查找包含格式.Font.Hidden = True '查找字體格式為隱藏的.Forward = True '向前查找.Wrap = wdFindStop '查找完成后停止Do While .Execute '如果找到了'分別打印:找到的內容,找到內容的開始位置,找到內容的結束位置Debug.Print .Parent, .Parent.Start, .Parent.EndLoopEnd WithActiveDocument.ActiveWindow.ActivePane.View.ShowHiddenText = x '將文檔是否顯示隱藏文字恢復到開始的狀態 End Sub

B.執行結果

圖5.2 設置【顯示隱藏文字】時,VBA查找結果

如果不想改變文檔原有狀態,又需要用VBA提取隱藏文字,則本人推薦使用這種方法

六、總結

本文從網友提問為切入點,介紹了Word中的【隱藏文字】相關的基礎設置、用高級查找手動查找隱藏文字的方法和用VBA查找隱藏文字的方法及處理技巧。希望對于Word軟件的入門級、中級和高級用戶都有所啟發。

廣大網友的認可與支持雖然不是創作的必要條件,但是,您的支持是創作的強大動力之一,如果認為本文對您使用Word有所幫助,記得幫忙點贊、收藏、評論和轉發。如果有Office辦公套件中的任何問題,歡迎大家提問,共同交流。

總結

以上是生活随笔為你收集整理的Word VBA:查找隐藏字符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。