VBAにはleft()
、がright()
あり、まさにこの目的mid()
のために機能します。
これを行う関数は次のようになります。
Function FmtStr (MyStr As String) As String
If Len (MyStr) <> 24 Then
FmtStr = "?"
Else
FmtStr = _
Mid (MyStr, 1, 3) + "," + _
Mid (MyStr, 4, 4) + "," + _
Mid (MyStr, 8, 1) + "," + _
Mid (MyStr, 9, 2) + "," + _
Mid (MyStr, 11, 3) + "," + _
Mid (MyStr, 14, 4) + "," + _
Mid (MyStr, 18, 4) + "," + _
Mid (MyStr, 22, 3)
End If
End Function
これを呼び出す:
MsgBox (FmtStr("100301010100019743024000"))
したがって、ダイアログボックスが表示されます。
Excelの数式でそれが必要な場合は、次を使用できます。
=concatenate(mid(a1,1,3), ",", mid(a1,4,4), ",", ... ",", mid(a1,22,3))
A1
(もちろん、元の文字列がセルにあると仮定します)。