2010 excel マクロ 記号の変化
エラー発生で強制終了になってしまいます。2007年のexcelで作成したものですが、2010だと強制終了になってしまいます。
内容は□をダブルクリックすると■になるように作っています。
記述は2003年からのマクロ記述なので、変化が必要なのでしょうか?
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'セルをダブルクリックすると、・→○→△→×→・と変更する。
Dim S1 As String
Dim S2 As String
Dim S01 As String
Dim S02 As String
Dim S03 As String
Dim S04 As String
S1 = "□"
S2 = "■"
S01 = "・"
S02 = "○"
S03 = "△"
S04 = "×"
On Error GoTo ERR_12
sCheckXY S1, S2
sCheckX1234 S01, S02, S03, S04
sChangeXY S1, S2
Exit Sub
ERR_12:
End
End Sub
Sub sChangeXY(X As String, Y As String)
'選択セルに□があれば■に変える
Dim Str0 As String 'str1の左端
Dim Str1 As String 'strの右側更新
Dim Str2 As String 'strの左側更新
Dim Str20 As String 'strの左側一部保存
Dim L As Long
Dim M As Long
Dim N As Long
Str1 = ActiveCell.Text
L = Len(Str1)
Debug.Print L
If L = 0 Then
End
End If
For N = 1 To L
Debug.Print Str2
Str0 = Left(Str1, 1)
If Str0 = X Or N = L Then
If Str20 <> "" Then
If N = L Then
Str20 = Str20 + Str0
End If
If MsgBox(Str20 & " はチェックしますか?", vbYesNo, "選択肢") = vbYes Then
Str2 = Str2 + Replace(Str20, X, Y)
Str20 = Str0
Else
Str2 = Str2 + Replace(Str20, Y, X)
Str20 = Str0
End If
Else
Str20 = Str0
End If
Else
Str20 = Str20 + Str0
End If
Str1 = Right(Str1, L - N)
Next N
ActiveCell.Value = Str2
End Sub
Sub sCheckXY(X As String, Y As String)
'選択セルがXならY,YならXにチェックをかえる
If ActiveCell.Text = X Then
ActiveCell.Value = Y
End
ElseIf ActiveCell.Text = Y Then
ActiveCell.Value = X
End
End If
End Sub
Sub sCheckX1234(X1 As String, X2 As String, X3 As String, X4 As String)
'選択セルがXならY,YならXにチェックをかえる
If ActiveCell.Text = X1 Then
ActiveCell.Value = X2
End
ElseIf ActiveCell.Text = X2 Then
ActiveCell.Value = X3
End
ElseIf ActiveCell.Text = X3 Then
ActiveCell.Value = X4
End
ElseIf ActiveCell.Text = X4 Then
ActiveCell.Value = X1
End
End If
End Sub
お礼
ありがとうございます。