- 締切済み
保護されたブックのコピーについて
現在、ボタンを押すと新規ブックが作成され、最初のブックのシートをコピーするというマクロを組みました。 しかし、元になるブックにはブックの保護とシートの保護を両方かけていて、途中でエラーになるはずなのですが、何故かそうならずに普通に新規ブックにコピーがされます。 上手くいったのですがエラーが出ると予想していたので気持ちが悪く、また個人だけで使うわけじゃないので原因を知っておきたいです。 どなたかよろしくお願いします。 Private Sub makeBookButton_Click() Dim myWorkBook As String Dim newWorkBook As String Dim mySheet As Worksheet Application.ScreenUpdating = False On Error GoTo ErrTrap Application.DisplayAlerts = False myWorkBook = ThisWorkbook.Name Workbooks.Add ActiveWorkbook.SaveAs Filename:=NEWBOOK newWorkBook = ActiveWorkbook.Name Workbooks(myWorkBook).Activate For Each mySheet In ThisWorkbook.Worksheets Workbooks(myWorkBook).Sheets(mySheet.Name).copy after:=Workbooks(newWorkBook).Sheets(Workbooks(newWorkBook).Sheets.Count) Next Workbooks(NEWBOOK).Sheets("Sheet1").Delete Workbooks(NEWBOOK).Sheets("Sheet2").Delete Workbooks(NEWBOOK).Sheets("Sheet3").Delete Application.DisplayAlerts = True Application.ScreenUpdating = True Exit Sub ErrTrap: Call MsgBox("ブック作成時にエラーが発生しました。", vbCritical) End Sub
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- MSZ006
- ベストアンサー率38% (390/1011)
#1ですが、 すみません、セルの選択をできないようにしてシート保護を掛けたら手動ではコピーできませんね。 失礼しました。 なお、それでもマクロからだとコピーはできてしまいますね。 Protectメソッドが関係してきそうですが、私の知識ではコピー不可にはできませんでした。。。 他の方のご回答があることを私も興味深く待たせていただきます。
- MSZ006
- ベストアンサー率38% (390/1011)
保護すると書き換えができないのであって、コピーできるのはそういうエクセルの仕様だと思います。 試しに手動でやってみましたが、保護したシートでもコピーできました。
補足
ブックの保護もかけていて、これだと手動でもコピーすることができませんでした。 VBAからだとコピーできるのはこれも仕様なのでしょうか・・・