|
ごめんなさい。↑の考え方、ShiftJIS コードの 2バイト目がまた
> コード80〜9F、または E0〜FF だったら
そこで1バイト移動してしまうので、
非常にまずかったです。スミマセン。
与えられた文字列の10バイト目と11バイト目以降を カンマで分割する
サンプルだけにしておきます。
Sub Try3()
Const u1 = "1234567890abcdefghij"
Const u2 = "あいう111おかきくけこ"
Const u3 = "あいう1えおかきくけこ"
Debug.Print SplitA(u2, 10) '10バイトまでと それ以降に分割
Debug.Print SplitA(u3, 10)
Debug.Print SplitA(u1, 10)
End Sub
Function SplitA(UStr As String, ByVal m As Long) As String
Dim i As Long
For i = m To m \ 2 Step -1
If LenB(StrConv(Left$(UStr, i), vbFromUnicode)) <= m Then
SplitA = Left$(UStr, i) & "," & Mid$(UStr, i + 1)
Exit Function
End If
Next
End Function
'結果
あいう111,おかきくけこ
あいう1え,おかきくけこ
1234567890,abcdefghij
|
|