• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シートの複写・名前の変更・移動を同時にしたい)

シートの複写・名前の変更・移動を同時にしたい

このQ&Aのポイント
  • winXP excel2003でマクロ作成の初心者です。シートを複写して、名前を変更までできましたが、ダイアログをキャンセルしても、newSheetができてしまいます。キャンセルしたらnewSheetができないようにしたいです。
  • シート名を変更したシートを、必ず後ろから5番目の(固定)に、移動したいです。
  • ご教授いただけますと幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#187541
noname#187541
回答No.1

こんばんは。 ダイアログでキャンセルをしたときはFalseが返ります。Falseの時にコピーしたシートを削除すればいいと思います。 後ろから5番目にするには、挿入する位置の指定をシート名ではなくインデックスにし、シート数から3を引いた数を指定すればいいと思います。 Sub シート複写とシート名の変更とシート移動() Dim mySheet As Worksheet Dim mystr As String Dim cnt As Integer cnt = Sheets.Count Set mySheet = ActiveWorkbook.Worksheets("1.○○会社") mySheet.Copy Before:=Sheets(cnt) ActiveSheet.Name = "newSheet" mystr = Application.Dialogs(xlDialogWorkbookName).Show If mystr = "False" Then Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True End If End Sub こんな感じでしょうか。

aitaine
質問者

お礼

こんなに迅速にご回答いただき感謝します。思ったとおりのことができて助かりました。ありがとうございました。