|
>Range("A1") = Left(Range("A1"), 1) & Mid(Range("A1"), 4)
作業セルを使わないで同じセルで作業するとセルの文字数とループの数が合わなくなりますよ。
とりあえず、の案です。
他の回答者からもっとマシなレスが付くまでの繋ぎです。
Sub test1()
Dim mycell As Range
Dim sagyoucell As Range
Dim cellstr As String
Dim i As Long
Dim j As Long
Set sagyoucell = ActiveSheet.Cells(1, 1)
Set mycell = ActiveCell
cellstr = ""
For i = 1 To Len(mycell.Value)
If i < 2 Or i > 2 + 2 - 1 Then cellstr = cellstr & Mid(mycell.Value, i, 1)
Next i
With sagyoucell
.NumberFormatLocal = "@"
.Value = cellstr
End With
j = 0
For i = 1 To Len(mycell.Value)
If i < 2 Or i > 2 + 2 - 1 Then
j = j + 1
sagyoucell.Characters(Start:=j, Length:=1).Font.Color = mycell.Characters(Start:=i, Length:=1).Font.Color
End If
Next i
sagyoucell.Copy mycell
sagyoucell.Clear
Set sagyoucell = Nothing
Set mycell = Nothing
End Sub
|
|