Excelのワークシートをコピーして、コマンドボタンでエクスポートし、次のコード(関連コードが削除されていない) :Excel 2010:コピーされたシートのみのボタンを削除する
Application.ScreenUpdating = False
N = Sheets.Count
Sheets("XYZ").Copy After:=Sheets(N)
''''' Sheets("XYZ").Select ''''' leads to an error - see below
Sheets(N + 1).Unprotect
Sheets(N + 1).Shapes.Range(Array("Button 1")).Delete
Application.CutCopyMode = False
Sheets(N + 1).Move ' creates and activates a new workbook
Application.ScreenUpdating = True
問題は、テンプレートがボタンでシート「XYZ」に戻ってしまうことです。しかし、私が試したもの(DoEventsとエラートラップを包括!)は、Excelは常にプロテクトされたテンプレートの同じボタンを削除しようとします。エラーにつながります( "コマンドは保護されたシートで使用できません...")。
テンプレートの他のシートが選択されている場合、バグは表示されません。 注:テンプレートには隠れたシートがあることがあるため、コピーしたシートを最後に追加する方が簡単です。したがって、コピーしたシートを移動するときに最後のシートに戻ります。
エラーを生成せずに、希望のマクロボタンのシート「XYZ」に戻るための回避策がありますか?