Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5053 / 76732 ←次へ | 前へ→

【77293】Re:保護、保護解除に時間がかかる
発言  β  - 15/7/2(木) 14:43 -

引用なし
パスワード
   ▼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
220 hits

【77291】保護、保護解除に時間がかかる JIRORORO 15/7/2(木) 10:46 質問[未読]
【77293】Re:保護、保護解除に時間がかかる β 15/7/2(木) 14:43 発言[未読]
【77294】Re:保護、保護解除に時間がかかる 独覚 15/7/2(木) 14:53 発言[未読]
【77295】Re:保護、保護解除に時間がかかる β 15/7/2(木) 15:37 発言[未読]
【77296】Re:保護、保護解除に時間がかかる JIRORORO 15/7/2(木) 17:23 お礼[未読]

5053 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free