シートをコピーして名前を変更するプロシージャ
サンプルには記載していませんが、
シート操作はエラーが起きやすいので、必要に応じてエラー処理が必要になります。
左からA,B,Cとシートが並んでいるとき
コピー元としてシートB、コピーしたシートに付ける名前として「D」を引数にして
このサンプルを実行すると、A,D,B,C という並びになります。
'* '* シートをコピーする '* '* in wsBaseSheet コピー元ワークシート '* sNewSheetName コピー後のシート名 '* Private Sub SheetCopy(ByVal wsBaseSheet As Worksheet, ByVal sNewSheetName As String) Dim lFmtIndex As Long Dim lNewIndex As Long 'シートをコピーして、コピー元の手前に置く wsBaseSheet.Copy Before:=wsBaseSheet 'コピー元シートのインデックスを取得する lFmtIndex = Sheets(”コピー元シート名”).Index 'コピー先のインデックスは「コピー元 - 1」 lNewIndex = lFmtIndex - 1 'コピー先シートの名前を変更する ThisWorkbook.Sheets(lNewIndex).Name = sNewSheetName End Sub