word裡可以打勾的方框怎麼弄(怎麼在word里加可以打勾的方框)

最近在做word vba專案,遇到個需求,需要根據條件判斷批量輸出打√的方框和不打√的方框,類似如下圖所示:

本來以為是個很容易的事情,沒想到阻礙不小。

首先,我們先看看如何在word文件中手動輸入帶√的框。

對於在word中輸入打√的方框,只要開啟百度搜尋一下,就可以找到一系列教程,教怎麼在Word中輸入打√的方框。

這裡,小編推薦本人最喜歡的2種方法,也是最容易記住和操作的方法。

第一種,用搜狗拼音輸入法,打一個√符號,然後在“開始”選項卡下的“字型”組中選擇“帶圈字元”,圈號選擇“方框”。

第二種,輸入一個大寫的R,然後字型選擇“Wingdings 2”即可。

在word中手動插入帶√的方框,看上去就是這麼簡單,但是當你要把這個字元放到vba中去,會發現變樣了。

通過帶圈字元生成的打√的方框,複製到vba中被拆分成了方框和√兩個字元。

通過字型顯示的打√方框拷貝到vba中顯示的是原來的字元R。

怎麼辦,怎麼辦?如何才能通過vba在word文件中輸出打√的方框呢?

這裡提供一種思路,僅供參考,如果您有更好的方法,請在評論區告訴我們。

回想剛才手動插入的過程,既然可以通過輸入一個大寫的R,然後字型選擇“Wingdings 2”即可顯示為打√的方框,我們為何不能在vba中先用大寫的R代替該字元,然後輸出在word中,再批量設定字型為“Wingdings 2”呢?

為此,我們將整個演算法寫成如下的形式:

將打√的方框表示為一個複雜的字串(這個字串不可能與整個word文件中的其它字串重複,不能僅僅表示為大寫字母R,因為有可能其它word字串中也含有大寫字母R),然後用word的查詢替換,批量查詢該複雜的字串,替換為大寫的R,同時替換設定字型格式為Wingdings 2。

程式碼如下:

Sub exceloffice() Dim oDoc As Document Set oDoc = Word.ActiveDocument Dim oRng As Range Set oRng = oDoc.Content   Arr = Array(“1、重大決策□”, “2、重要幹部任免、獎懲□”, “3、重大專案安排□”, “4、大額資金使用□”, “5、其他□”) ‘條件是“重大決策” sText = “重大決策” For i = 0 To UBound(Arr) If Arr(i) Like “*” & sText & “*” Then ‘將滿足條件的專案的無√框替換為一個特殊的字串,這裡是8個美元符號組成的生僻詞,在word文件中不可能出現這樣的詞” Arr(i) = VBA.Replace(Arr(i), “□”, “$$$$$$$$”) End If Next i With oRng .Text = Join(Arr, vbTab) With .Find ‘查詢特殊的字串 .ClearFormatting .Text = “$$$$$$$$” With .Replacement .ClearFormatting ‘替換為大寫字母R .Text = “R” ‘要替換的格式 .Font.Name = “Wingdings 2” End With ‘批量查詢替換 .Execute Format:=True, Replace:=wdReplaceAll End With End With End Sub

了上述方法,還可以用vba模擬第一種手動插入的方法,生成帶圈的字元的方式,但是用上述程式碼可以非常完美的解決在word文件的任意位置插入打√的方框的問題,從而不用去考慮打√的方框在word文件中的位置,靈活性較好。