• 締切済み

エクセルについて繰り返しの質問です。

エクセルについて繰り返しの質問です。 アラビア数字を漢数字に変換する関数でnumberstringがありますが、小数点以下も漢数字に変換する方法はありませんか? 具体的には例えば、 12345.67と入力したら、壹万贰阡叁佰肆拾伍元陆角柒分 と自動で変換させたいと考えています。 ちなみに中国で精算伝票作成時に試用したいと考えています。

みんなの回答

回答No.4

=ChinaNumber(TEXT(A1,"[$-804][DBNum2]G/標準元")) 式を示していませんでした。

回答No.3

同じ内容を投稿する前に、先の質問をクローズした方が良いですよ。 で。 素直に「中国語対応」にしちゃえば良いのではないですか? https://support.office.com/ja-jp/article/Office-%E8%A8%80%E8%AA%9E%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B5%E3%83%AA-%E3%83%91%E3%83%83%E3%82%AF-82ee1236-0f9a-45ee-9c72-05b026ee809f?ui=ja-JP&rs=ja-JP&ad=JP

lvcha750
質問者

お礼

繰り返しの場合の件、不慣れで申し訳ございませんでした。

回答No.2

 ウーン。ネット上の散見される変換式は汎用性に欠けていると思います。たとえば、添付図(下)のように小数点以下の桁数を変更すると不具合が発生します。これを避けるには、やっぱしVBAでチョイ補正するしかないのでは・・・。添付図(上)は、ChinaNumber()という変換補正関数を用いています。 Private Function CutStr(ByVal Text As String, _             ByVal Separator As String, _             ByVal N As Integer) As String   Dim strDatas() As String      strDatas = Split("" & Separator & Text, Separator, , 0)   CutStr = strDatas(N * Abs(N <= UBound(strDatas))) End Function Public Function ChinaNumber(ByVal strNumber As String) As String   Dim I As Integer   Dim L As Integer   Dim strChar As String   Dim strNumber1 As String   Dim strNumber2 As String   Dim strNumber3 As String      strNumber1 = CutStr(strNumber, ".", 1)   strNumber2 = CutStr(strNumber, ".", 2)   L = Len(strNumber2)   If L > 0 Then     strNumber1 = strNumber1 & "元"     L = L - 1     For I = 1 To L       strChar = Mid(strNumber2, I, 1)       strNumber3 = strNumber3 & strChar & Mid("角分", I, 1)     Next I   End If   ChinaNumber = strNumber1 & strNumber3 End Function 【注意】70の爺が急いで書いた関数。当然に改善の余地ありです。

  • f272
  • ベストアンサー率46% (8469/18132)
回答No.1

A1に12345.67と入力して A2に=IF(ISNUMBER(A1), TEXT(INT(A1),"[$-804][DBNum2]G/標準元")&IF(MOD(A1,1), TEXT(INT(MOD(A1*10,10)),"[$-804][DBNum2]0") &IF(INT(MOD(A1*10,10)),"角","") &TEXT(INT(MOD(A1*100,10)),"[$-804][DBNum2]0分。;;整"), "整"), "") と入力したら 壹万贰阡叁佰肆拾伍元陆角柒分 になりましたよ。

関連するQ&A