📋
MoveSheet
シート管理シートをブック内の別の位置に移動する
🎬 デモGIF準備中
📖 使い方
- VBAエディタを開く(Alt + F11)
- モジュールを挿入(挿入 > モジュール)
- 下記VBAコードをコピー&ペースト
- ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 実行するとシート名と移動先位置を入力するダイアログが表示される
💻 VBAコード
' MoveSheet
' -----------------
' Macro Name: MoveSheet
' Description: シートをブック内の別の位置に移動する
' Parameters: なし
' Returns: なし
' Usage: 実行するとシート名と移動先位置を入力するダイアログが表示される
' -----------------
Sub MoveSheet()
Dim ws As Worksheet
Dim sheetName As String
Dim position As String
Dim newIndex As Long
Dim i As Long
On Error GoTo ErrorHandler
sheetName = InputBox("移動するシート名を入力:", "シート移動", ActiveSheet.Name)
If sheetName = "" Then
Exit Sub
End If
On Error Resume Next
Set ws = Worksheets(sheetName)
On Error GoTo ErrorHandler
If ws Is Nothing Then
MsgBox "「" & sheetName & "」は存在しません。", vbExclamation
Exit Sub
End If
position = InputBox("移動先を入力:" & vbCrLf & " 先頭: 1" & vbCrLf & " 末尾: " & Worksheets.Count & vbCrLf & " シート名: シート名を指定", "シート移動")
If position = "" Then
Exit Sub
End If
If IsNumeric(position) Then
newIndex = CLng(position)
If newIndex < 1 Then newIndex = 1
If newIndex > Worksheets.Count Then newIndex = Worksheets.Count
ws.Move Before:=Worksheets(newIndex)
Else
On Error Resume Next
Set ws = Worksheets(position)
On Error GoTo ErrorHandler
If ws Is Nothing Then
MsgBox "「" & position & "」は存在しません。", vbExclamation
Exit Sub
End If
ws.Move After:=ws
End If
MsgBox "「" & sheetName & "」を移動しました。", vbInformation
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しました: " & Err.Description, vbCritical
End Sub