Excel VBA質問箱 IV

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

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


955 / 13644 ツリー ←次へ | 前へ→

【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 お礼[未読]

【77291】保護、保護解除に時間がかかる
質問  JIRORORO  - 15/7/2(木) 10:46 -

引用なし
パスワード
   多数の方が扱うブックなので、そのブックで使用しているマクロでもシートおよびブックの保護解除、保護を行う必要があります。

最近2013に変わったのですが、マクロがだいぶ遅くなりました。調べてみると原因のひとつに保護、保護解除を行うと時間がかかるようになっているとの記述を見つけました。

その問題の解消されるような仕様変更はまだされていないのでしょうか?

【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

【77294】Re:保護、保護解除に時間がかかる
発言  独覚  - 15/7/2(木) 14:53 -

引用なし
パスワード
   ▼β さん:
Microsoftでの情報だけ。

ht tps://msdn.microsoft.com/ja-jp/library/office/ff837594.aspx

上記のページの「所要時間が長くなったシートの保護」を参照。

しっかりと
>これは設計によるものであり、回避策はありません。
となっているので仕様変更は望み薄…

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

引用なし
パスワード
   ▼独覚 さん:

ご紹介ありがとうございます。
そのほかにもいろいろあるんですね。勉強になりました。

であれば、なおさらのこと、ブックを開いたときの1回こっきりの保護の有効性が
増してきますね。

【77296】Re:保護、保護解除に時間がかかる
お礼  JIRORORO  - 15/7/2(木) 17:23 -

引用なし
パスワード
   ▼β さん:
▼独覚 さん:

ありがとうございます。そんなやり方があるんですね。問題解決できそうです。

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