この記事では、ExcelのVBAマクロを使ったシートの移動方法について解説していきます。ポイントとしてはMove関数、Insert関数、InputBox関数を使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名を少々変わった名称にしております。そのため、あなた自身がご活用の際には、ここを適切なものに変更してご活用くださいね。それでは詳しく見ていきましょう!
1. VBAマクロでシート移動(別ブックの最後尾)する方法【Move関数】
それではまず、別ブックの最後尾へのシート移動方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub SahyouIdouSaigo()
Dim motoBukku As Workbook
Dim mokuhyouBukku As Workbook
' 現在のワークブックを変数に格納
Set motoBukku = ThisWorkbook
' 目的のワークブックを変数に格納
Set mokuhyouBukku = Workbooks("目的のワークブック名.xlsm")
' シートを別ブックの最後尾に移動
motoBukku.Sheets("移動したいシート名").Move After:=mokuhyouBukku.Sheets(mokuhyouBukku.Sheets.Count)
End Sub
コードのAlt+F8を押し、マクロ選択画面でSahyouIdouSaigo関数を実行します。
このコードは、現在のワークブックの指定したシートを、別のワークブックの最後尾に移動させるものです。必要に応じて”目的のワークブック名.xlsm”や”移動したいシート名”を変更してください。
2. VBAマクロでシート移動(別ブックの先頭に)する方法【Insert関数】
続いては、別ブックの先頭へのシート移動方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub SahyouIdouSentei()
Dim motoBukku As Workbook
Dim mokuhyouBukku As Workbook
' 現在のワークブックを変数に格納
Set motoBukku = ThisWorkbook
' 目的のワークブックを変数に格納
Set mokuhyouBukku = Workbooks("目的のワークブック名.xlsm")
' シートを別ブックの先頭に移動
motoBukku.Sheets("移動したいシート名").Move Before:=mokuhyouBukku.Sheets(1)
End Sub
コードのAlt+F8を押し、マクロ選択画面でSahyouIdouSentei関数を実行します。
このコードは、指定したシートを別のワークブックの先頭位置に移動させるものです。必要に応じてワークブック名やシート名を変更してください。
3. VBAマクロでシートを別ブックの末尾に複数移動させる方法【InputBox関数】
最後に、複数のシートをダイヤログで指定した数だけ別ブックの末尾に移動させる方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub SahyouTasuuIdou()
Dim motoBukku As Workbook
Dim mokuhyouBukku As Workbook
Dim kaisuu As Integer
Dim i As Integer
' 現在のワークブックを変数に格納
Set motoBukku = ThisWorkbook
' 目的のワークブックを変数に格納
Set mokuhyouBukku = Workbooks("目的のワークブック名.xlsm")
' 移動するシート数を指定
kaisuu = InputBox("移動したいシートの数を入力してください")
' シートを指定した数だけ別ブックの末尾に移動
For i = 1 To kaisuu
motoBukku.Sheets(i).Move After:=mokuhyouBukku.Sheets(mokuhyouBukku.Sheets.Count)
Next i
End Sub
コードのAlt+F8を押し、マクロ選択画面でSahyouTasuuIdou関数を実行します。
このコードでは、InputBox関数を利用して移動させるシート数を指定することができます。指定した数だけ、シートを別ブックの最後尾に順番に移動させる処理を行います。