1 Star 0 Fork 0

次果果 / Excel VBA汉字拼音

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Excel VBA汉字拼音

介绍

用vba代码创建自定义函数/公式,实现在Excel中得到对应汉字的拼音。

使用方法

  1. 下载汉字拼音.bas,将其导入到VBA编辑器中的模块,在Excel单元格中输入=pinyin(汉字字符),得到单个汉字的拼音。
  2. 在Excel单元格中输入=getpy(多个连续汉字字符),得到每个汉字的拼音(不同拼音用空格间隔)。
  3. 函数无法获得某个汉字拼音时,将返回汉字本身。

技术细节

  1. Asc(汉字字符)返回的是汉字字符的整数值,其中有一部分连续的整数对应的汉字拼音是连续的,但是也有很多汉字字符的拼音不在连续的序列中。
  2. Chr()函数是Asc(汉字字符)对应的反函数,返回对应整数的字符。
  3. 《通用规范汉字表〔2013〕》中收录汉字8105个。

存在的问题、疑惑

  1. 有很大一部分汉字不在连续的dbcs序列中。
  2. 对于多音字,目前只能显示一个拼音。
  3. 多音字的发音可能在某些场景是比较固定的,比如,殷的读音有yin和yan,但用于姓氏,只有读音yan。最初,我是为了显示姓名对应的拼音,所以,大多根据姓氏读音来调整汉字的拼音,不知妥不妥,毕竟,有些时候,非姓氏的发音可能更常用。或是,兼备二者?

开发者避坑指南

  1. 在Excel VBA的select case语句中,最多可以有255个case分支(证据不确凿)。
  2. 在Excel VBA中,一行代码最多可以有1024个字符。如果超过了这个限制,你需要将代码分成多行来编写。
  3. 汉字的发音约400多个,尝试过将发音相同的汉字放入同一个Select Case语句的Case中(扁平化。。。),但是效果不佳,主要原因可能是上述1和2。除此以外,速度也很慢。

编写时用到的环境

  1. Windows10 x64系统上编写的。

参考

  1. 思路来源于网络

使用中发现的其他问题,可以在issue中提出,以便改进。

空文件

简介

通过vba代码创建自定义函数,实现在Excel中得到对应汉字的拼音。 展开 收起
取消

贡献者

全部

近期动态

加载更多
不能加载更多了
其他
1
https://gitee.com/ciguoguo/excel-vba-hanzi-pinyin.git
git@gitee.com:ciguoguo/excel-vba-hanzi-pinyin.git
ciguoguo
excel-vba-hanzi-pinyin
Excel VBA汉字拼音
master

搜索帮助