サンプルファイル
Private Sub CommandButton1_Click()
If ListBox1.ListIndex >= 0 Then
msg = MsgBox("選択シートの名前を変更します。", vbYesNo)
If msg = vbYes Then
Call chngSheetName
End If
Else
MsgBox "シート名を選択して下さい。"
End If
End Sub
Private Sub ListBox1_Click()
On Error Resume Next '選択したシート名へ移動
Worksheets(ListBox1.Text).Select
Cells(1, "A").Select
End Sub
Private Sub UserForm_Initialize()
Call uFInit
End Sub
Sub uFInit()
On Error Resume Next
ListBox1.Clear
For i = 1 To Worksheets.Count 'シートの数だけ繰り返す
ListBox1.AddItem Worksheets(i).Name '取得したシート名をリストボックスへ
Next
ListBox1.ListIndex = 0
End Sub
Private Sub chngSheetName()
On Error GoTo line
'シート名変更
If Trim(TextBox1.Text) <> "" Then
crrntIndex = ListBox1.ListIndex '選択中のインデックスを取得
Worksheets(ListBox1.Text).Name = TextBox1.Text 'シート名変更
Call uFInit
TextBox1.Text = ""
ListBox1.ListIndex = crrntIndex 'インデックスを移動する
Else
MsgBox "シート名を入力して下さい。"
End If
Exit Sub
line:
MsgBox "同じシート名がすでに存在します。シート名を変更してください。"
End Sub
|