サンプルでは、まずInputBoxでシート名を入力します。
シート名は数字のみに限定しています。
既に同じシート名が使われていないか確認し、使われていたら再度入力、
使われていなかったらシートを一番後ろに追加して名前を付けます。
Sub Sample()
Dim myWS As Object
Dim InputName As String
Dim i As Integer
InputData:
'
InputName = Application.InputBox(Prompt:="シート名を入力してください", Title:="新規")
'<何も入力せずOKの場合、処理を終わりにします。>
If InputName = "" Then Exit Sub
'<キャンセルの場合、処理を終わりにします。>
If InputName = "False" Then Exit Sub
'<数字以外の入力があった場合、再入力します。>
If Not IsNumeric(InputName) Then
MsgBox("入力できるのは数字だけです")
GoTo InputData
End If
'<全角が混じっている場合に半角へ変換します。>
InputName = StrConv(InputName,vbNarrow)
'<同じワークシート名がないか確認します。>
For Each myWS In Sheets
If myWS.Name = InputName Then
MsgBox "この名前は既に使われています。再入力してください。"
GoTo InputData
End If
Next
'<新しいワークシートを一番後ろに作成します。>
Worksheets.Add after:=Worksheets(Worksheets.Count)
'<追加されたワークシートに入力された名前を付けます。>
ActiveSheet.Name = InputName
End Sub
|