作者:绿色风
分类:
时间:2022-08-17
浏览:125
楼主 い卋玑┾宝珼 |
Q:怎么实现输入不同的语言默认字体不一样,比如说我输入日语的时候,字体要用MS Gothic,而输入中文的时候,要用宋体?
A:可以通过获取当前输入法语言,然后在change事件里,根据获取的不同语言,进行对应的设置。
首先是获取当前输入法的语言的处理 其实用法还是比较容易看懂的,其实就是用API,获取系统当前的输入法状态。 获取当前输入语言的代码如下:- Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
- Public Function GetKbLayout() As String
- On Error Resume Next
- Dim strLocId As String
- strLocId = String(9, 0)
- GetKeyboardLayoutName strLocId
- GetKbLayout = strLocId
- End Function
测试当前输入法的ID值- Sub test()
- Debug.Print ASC(GetKbLayout)
- End Sub
以下是切换单元格时,根据取出来的输入法,设置当前的字体 因为需求是只设日语输入法和中文输入法时的字体,所以根据需求写了以下示例代码。
大家如果有其它需求,可以进行少量修正,如添加分支,改变更改字体的时机等- Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
- If Asc(GetKbLayout) = 48 Then '日语输入法
- Target.Font.Name = "MS Gothic"
- ElseIf Asc(GetKbLayout) = 69 Then '中文输入法
- Target.Font.Name = "宋体"
- End If
- End Sub
附件是示例文档,供参考
根据当前输入法,设置字体.zip |
2楼 xmyjk |
学习了,谢谢西西。 |
3楼 千年一梦遥 |
跟西西学习 |
4楼 A______________ |
我被忽悠了 下载了 都是个空的。 |
5楼 い卋玑┾宝珼 |
里面有代码 |
6楼 老糊涂 |
学习了,谢谢 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一