Dim str As String = CurrentTable.Font.Name & "|" & CurrentTable.Font.Size & "|" & CurrentTable.Font.StyleOutput.Show(str) 'str = "宋体|9|0"
CurrentTable.Font = New Font(str.Split("|")(0),CInt(str.Split("|")(1)),CInt(str.Split("|")(2)))
红色部分报错。
可以用动态函数解决问题,但是太啰嗦:
Dim fntstyle() As String = {"FontStyle.Regular","FontStyle.Bold","FontStyle.Italic","FontStyle.Bold Or FontStyle.Italic","FontStyle.Regular Or FontStyle.Underline","FontStyle.Bold Or FontStyle.Underline", _
"FontStyle.Italic Or FontStyle.Underline","FontStyle.Bold Or FontStyle.Italic Or FontStyle.Underline","FontStyle.Regular Or FontStyle.Strikeout","FontStyle.Bold Or FontStyle.Strikeout", _
"FontStyle.Italic Or FontStyle.Strikeout","FontStyle.Bold Or FontStyle.Italic Or FontStyle.Strikeout","FontStyle.Regular Or FontStyle.Strikeout Or FontStyle.Underline", _
"FontStyle.Bold Or FontStyle.Strikeout Or FontStyle.Underline","FontStyle.Italic Or FontStyle.Strikeout Or FontStyle.Underline","FontStyle.Bold Or FontStyle.Italic Or FontStyle.Strikeout Or FontStyle.Underline"}
Dim code As String
Code = "Dim fnt As Font = New Font(""" & str.Split("|")(0) & """," & CInt(str.Split("|")(1)) & "," & fntstyle(str.Split("|")(2)) & ")" & vbcrlf
Code = Code & "Return fnt"
Functions.Remove("字体")
Functions.Add("字体",Code)
Functions.Complie()
CurrentTable.Font = Functions.Execute("字体")
有没有简便的方法,还原字体?