|
Sub S_ADD()
Dim Sh As Worksheet
Application.DisplayAlerts = False
'Excelが自動的に出すメッセージを出させなくする
On Error Resume Next
'これ以降にエラーが発生したとき、デバッグせずに次の行に移る
Set Sh = Worksheets("Sheet4")
'オブジェクト変数に Sheet4 を格納しようとする
If Err.Number = 0 Then
'もしエラーが出なかったら
'(つまり実際に Sheet4 が存在したことを証明したことになる)
Sh.Cells.Clear: Sh.Activate
'Sheet4 の全セルをクリアし、アクティブにする
Else
'エラーが出ている場合は(存在しなければ Set Sh 〜 がエラーになる)
Worksheets.Add(After:=Worksheets("Sheet3")) _
.Name = "Sheet4"
'新規シートを Sheet3 の後ろに挿入し、Sheet4 と名前を付ける
Err.Clear
'これは無くてもいいけど、いちおうエラー値を 0 にしている
End If
On Error GoTo 0: Set Sh = Nothing
'エラートラップを解除し、変数とオブジェクトの関係を断つ
Application.DisplayAlerts = True
'最後にメッセージが普通に出せるように、設定を元に戻す
End Sub
・・ということになりますが、理解されましたか ?
|
|