|
▼JIRORORO さん:
>調べてみると原因のひとつに保護、保護解除を行うと時間がかかるようになっているとの記述を見つけました。
>その問題の解消されるような仕様変更はまだされていないのでしょうか?
そうなっているんですか。勉強になります。
ところで、マクロで書きこみなどをするために、保護解除->書き込み->再保護。
この行為に時間がかかるなら、これをやめればよろしいかと。
Workbook_Open に以下を記述しておきますと、そのブックの指定シートの保護設定条件を継承し
かつ、操作者からは保護でプロテクト、マクロは自由自在に書きこみなどができますので
都度、保護解除->書き込み->再保護 という処理そのものが不要になります。
コードではシートを特定していますが すべてのシート、あるいは、これとこれといった処理も
もちろん、(シートをループで取り出すことで)可能です。
Private Sub Workbook_Open()
'現在の保護要素を継承したシート保護 UserInterfaceOnly付
Dim pp As Protection
With Sheets("Sheet1") '対象シート
Set pp = .Protection
.Protect DrawingObjects:=.ProtectDrawingObjects, _
Contents:=.ProtectContents, _
Scenarios:=.ProtectScenarios, _
AllowFormattingCells:=pp.AllowFormattingCells, _
AllowFormattingColumns:=pp.AllowFormattingColumns, _
AllowFormattingRows:=pp.AllowFormattingRows, _
AllowInsertingColumns:=pp.AllowInsertingColumns, _
AllowInsertingRows:=pp.AllowInsertingRows, _
AllowInsertingHyperlinks:=pp.AllowInsertingHyperlinks, _
AllowDeletingColumns:=pp.AllowDeletingColumns, _
AllowDeletingRows:=pp.AllowDeletingRows, _
AllowSorting:=pp.AllowSorting, _
AllowFiltering:=pp.AllowFiltering, _
AllowUsingPivotTables:=pp.AllowUsingPivotTables, _
UserInterfaceOnly:=True
End With
End Sub
|
|