dポイントプレゼントキャンペーン実施中!

複数シートを一括で保護を掛ける際に書式設定は「変更可」にするVBAですが
一括で保護を掛けるマクロは、「教えてgoo」に掲載があったので下記のものを使用しました。

Sub 全シート一括保護() '全シート一括保護
Dim W As Worksheet
For Each W In Worksheets
W.Protect ("1111") 'パスワード1111
Next W
End Sub

この保護をかける際に、書式変更だけは可(例えばセルに色を付けることはOK)とするVBAはどこにどのようなコードをいれてあげれば良いのでしょうか?アドバイス、お願いいたします!

質問者からの補足コメント

  • うーん・・・

    くんこばさん、アドバイスありがとうございます。対象シートが50枚以上あるのでVBAで自動化が必要なのです。もう少し回答、アドバイスを待ってみますね。

    No.1の回答に寄せられた補足コメントです。 補足日時:2016/12/09 17:04
  • つらい・・・

    くんこばさん、お調べ頂きありがとうございます。ただ現在組み込みのマクロのどこにそのコードを入れるかがわかりませんでした。いろいろな行にいれてみましたが、うまく希望したようになりませんでした(´;ω;`)ウゥゥ

    No.2の回答に寄せられた補足コメントです。 補足日時:2016/12/11 22:32

A 回答 (3件)

これでいけましたよ。


Sub 全シート一括保護() '全シート一括保護
Dim W As Worksheet
For Each W In Worksheets
' W.Protect ("1111") 'パスワード1111
W.Activate
ActiveSheet.Protect _
Password:="1111", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
AllowFormattingColumns:=True, _
AllowFormattingRows:=True, _
AllowInsertingColumns:=True
Next W
End Sub

もしかして、
ActiveSheet.Protect ("1111") _
DrawingObjects:=True, _ ・・・(略)
上記みたいに書いてました?
上記のように書くなら、
W.Protect ("1111",true,true,true)
みたいに書く必要があります。

名前付き引数
 http://officetanaka.net/excel/vba/beginner/03.htm
protectの構文
 https://msdn.microsoft.com/ja-jp/library/office/ …

もう一息!
    • good
    • 0
この回答へのお礼

くんこばさん! できました! ありがとうございます。素晴らしい!いろいろ勉強になりました。このお蔭で仕事がとても捗るようになりました。今後もまた自動化の質問をさせて頂く事があると思います。よろしくお願いいたします。助かりました!

お礼日時:2016/12/12 16:36

そうではないです。



マクロの記録をしながら、シートを保護してみました。
Sub Macro1()
'
' Macro1 Macro
ActiveSheet.Protect _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
AllowFormattingColumns:=True, _
AllowFormattingRows:=True, _
AllowInsertingColumns:=True
End Sub
ちょっと体裁は整えましたが、このようになりました。
チェックボックスの数とTRUEの数が同じでした。
つまり、チェックしたところと上記のコードの対応付けができるはずです。

マクロの記録、シート保護の許可、ちょっと調べる必要がありますが、解決できるはずです。
この回答への補足あり
    • good
    • 0

コードは載せれませんが…



シートの保護を、手動でしたことは?
マクロの記録でやってみては?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!