HOME > 即効テクニック > Excel VBA > シート操作関連のテクニック > ワークシートを追加して、ワークシートに名前を付ける

即効テクニック

シート操作関連のテクニック

ワークシートを追加して、ワークシートに名前を付ける

( - )
サンプルでは、まず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