sub geneq()
if selection.start <> selection.end then
dim objrange as range
dim objeq as omath
set objrange = selection.range
'不能加入下面這行注釋掉的**,否則在日文版word 2007和2010上將不能實現下面的靈活字型控制
'objrange.text = selection.range.text
set objrange = objrange.omaths.add(objrange)
'靈活控制哪類字元加斜體
for i = 1 to objrange.characters.count
if objrange.characters(i).text like "[a-za-z]" then
objrange.characters(i).italic = true
else
objrange.characters(i).italic = false
end if
next i
set objeq = objrange.omaths(1)
objeq.buildup
'加入下面這行**,會使日文版word 2007和2010的行為正常,否則將出現下面的怪異現象,中文版word 2013沒有這種現象:
'在word中,在第一行輸入x=3,選擇x=3,使用本函式生成公式(x是斜體,=3不是斜體),回車換行,當前游標將停留在居中位置(進行相同操作,中文版word 2013游標將停在左對齊位置),
'再輸入y=x+1,選擇y=x+1,使用本函式生成公式(y=x+1都不是斜體)
objeq.parentomath.type = wdomathinline
end if
end sub
如果在word中輸入「y=x」, 把「y=x」這3個字元加黑體,選擇這3個字元,執行上面的巨集geneq(),結果,x和y都不會加斜體。
因為 objrange.characters(3).text 返回的值並不是乙個ascii碼的字元x,而是黑體x(mathematical bold small x) ,即unicode字元u+1d431,utf-16編碼為: d835 dc31。
這樣,if objrange.characters(i).text like "[a-za-z]" then 這個判斷就總是失效的了。
也就是說,把字串「y=x」轉變為公式後,如果「y=x」不帶字型,公式的text就是「y=x」三個字元; 如果「y=x」帶有黑體,公式的text就變成了「u+1d432」「=」「u+1d431」三個字元。
公式中的乙個字元x,加了不同的字型,其實就變成了不同的unicode字元了,就像上面看到的,對於字元x:
不加任何字型,那麼他就是ascii的x字元,
如果加了黑體就變成了字元u+1d431 (mathematical bold small x)
如果加了斜體,就變成了字元u+1d465 (mathematical italic small x)
如果加了黑體斜體,就變成了字元u+1d499 (mathematical bold italic small x)
可以使用下面vba語句檢視字串的16進製制值:
dim s as string, hexstr as string
s = "北京beijing"
for i = 1 to len(s)
hexstr = hexstr + hex(ascw(right(s, len(s) - i + 1))) + ";"
next i
msgbox hexstr
參考:
在word軟體中使用MathType自動編號功能
在word軟體中使用mathtype。在word中,mathtype工具欄各按鈕的功能如下圖 1.前四項都是在word中插入公式,點任何一項都會開啟mathtype編輯器。1 insert inline equation 用於在正文段落中插入小公式或變數符號等 2 insert display eq...
在word軟體中使用MathType自動編號功能
在word軟體中使用mathtype。在word中,mathtype工具欄各按鈕的功能如下圖 1.前四項都是在word中插入公式,點任何一項都會開啟mathtype編輯器。1 insert inline equation 用於在正文段落中插入小公式或變數符號等 2 insert display eq...
Word自動生成目錄
優點 用word根據文章的章節自動生成目錄不但快捷,而且閱讀查詢內容時也很方便,只是按住ctrl點選目錄中的某一章節就會直接跳轉到該頁,更重要的是便於今後修改,因為寫完的文章難免多次修改,增加或刪減內容。倘若用手工給目錄標頁,中間內容一改,後面頁碼全要改是一件很讓人頭痛的事情。應該自動生成的目錄,你...