[[20191101150753]] 『VBAでオブジェクトの編集を許可できない』(おぶじぇくと) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAでオブジェクトの編集を許可できない』(おぶじぇくと)

現状以下のマクロを組んでいます。

 Private Sub Workbook_Open()
     For Each W_Sheet In Worksheets
        With W_Sheet
         .Unprotect Password:="●●●"
         .EnableOutlining = True
         .Protect Contents:=True, DrawingObjects:=False, UserInterfaceOnly:=True
         .Protect AllowFormattingCells:=True
         .Protect Password:="●●●"
        End With
    Next
 End Sub

このマクロの目的は、以下の二つです。

・シートをパスワード付きで保護していてもグループ化の開閉ができるようにする。
・ロックされていないセルは入力可能

ここに、シートが保護されていてもコメントの挿入ができるようにしたいので、6行目に「DrawingObjects:=False」を追加しましたが、うまく動いてくれません。

アドバイスいただけると幸いです。
よろしくお願いいたします。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 なぜ Protectを3行に分けて書いているのですか?

 1行にまとめて書いてみてください

         .Protect Password:="●●●",Contents:=True, DrawingObjects:=False, UserInterfaceOnly:=True,AllowFormattingCells:=True

(渡辺ひかる) 2019/11/01(金) 15:27


 一応解説。
 ヘルプでDrawingObjectsの説明は
 >描画オブジェクトを保護するには、True を指定します。既定値は True です。
 となっている。
 つまり省略された場合Trueになるという事。

(ねむねむ) 2019/11/01(金) 15:30


 Protectを分けて書いているので
 >.Protect Contents:=True, DrawingObjects:=False, UserInterfaceOnly:=True
 で保護をかけた後に
 >.Protect AllowFormattingCells:=True
 で保護をかけ、さらに
 >.Protect AllowFormattingCells:=True
 で保護をかけていることになり最後のProtectで省略した引数のものは規定値で保護されることになる。
(ねむねむ) 2019/11/01(金) 15:33

渡辺ひかるさん

早速ご返信いただきありがとうございます。
拾ってきたものを組み合わせたりしていたもので、
深く考えておりませんでした。。

お陰様で、一つにまとめましたところ、無事コメントの挿入が可能になりました。
本当に助かりました。ありがとうございました。

ねむねむさん
解説いただきありがとうございます。
そういう理由でうまく動いていないように見えたんですね・・・。
一度に書いてしまわないと、同時に行われないということ、肝に銘じます。
分かりやすい解説、ありがとうございました。

(おぶじぇくと) 2019/11/01(金) 15:36


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.