私はこれでリングに帽子をかぶると思いました。すべてのバージョンは、変換されるセルがセル A1 から始まる列 A にあると想定していることに注意してください。
マクロとして:
Sub tgr()
Dim arrResults() As String
Dim varText As Variant
Dim varPart As Variant
Dim ResultIndex As Long
With Range("A1", Cells(Rows.Count, "A").End(xlUp))
ReDim arrResults(1 To .Rows.Count, 1 To 1)
For Each varText In .Value
ResultIndex = ResultIndex + 1
For Each varPart In Split(Mid(varText, InStr(varText, "-") + 1), "-")
arrResults(ResultIndex, 1) = arrResults(ResultIndex, 1) & "-" & Val(varPart)
Next varPart
arrResults(ResultIndex, 1) = Mid(arrResults(ResultIndex, 1), 2)
Next varText
.Value = arrResults
End With
End Sub
UDF として:
Function tgrUDF(sText As String) As String
Dim varPart As Variant
For Each varPart In Split(Mid(sText, InStr(sText, "-") + 1), "-")
tgrUDF = tgrUDF & "-" & Val(varPart)
Next varPart
tgrUDF = Mid(tgrUDF, 2)
End Function
式として:
=--MID(SUBSTITUTE(A1,"-",REPT(" ",99)),99,99)&"-"&--MID(SUBSTITUTE(A1,"-",REPT(" ",99) ),99*2,99)&"-"&--MID(SUBSTITUTE(A1,"-",REPT(" ",99)),99*3,99)