エクセル マクロについてです。


1つのファイルの中に、A・B・Cと複数のシートがあります。

This Workbookの中に

Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In Worksheets()
ws.Unprotect Password:="1111"
ws.Protect Password:="1111", DrawingObjects:=True, contents:=True, UserInterfaceOnly:=True
Next
End Sub

とあり、ファイルを開く度に全部のシートが保護されます。
これをA・Bのシートのみパスワードの設定がなされ(上記の内容のように)、
Cのシートは自由に編集できるよう、コードを書くには、どのようにすれば良いでしょうか。
素人なのでコピペすればバッチリ!という回答が欲しいです。

宜しくお願い致します。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2010/03/03 15:32:03
  • 終了:2010/03/03 15:59:54

ベストアンサー

id:GreenStar No.1

GreenStar回答回数192ベストアンサー獲得回数462010/03/03 15:45:53

ポイント60pt

C以外は保護をかけて、Cは保護をかけないようにしてみました。

Private Sub Workbook_Open()
    Dim ws As Worksheet
    For Each ws In Worksheets()
        ws.Unprotect Password:="1111"
        If ws.Name <> "C" Then
            ws.Protect Password:="1111", DrawingObjects:=True, contents:=True, UserInterfaceOnly:=True
        End If
    Next
End Sub

AかBなら保護をかけるというなら下のように変更

        If ws.Name = "A" OR ws.Name = "B" Then

保護をかけたいシートのほうが多いのか、保護しないシートのほうが多いのかによって、どっちか選んでね。

id:msvista

素晴らしい!

もうーバッチリです!

ありがとうございました!

2010/03/03 15:59:42
  • id:GreenStar
    シートCは保護しないという風にプログラムしたよ。

    それじゃ困る!保護は必要だからCはパスワード無しの保護にしたい!なら
    End If

    Else
    ws.Protect DrawingObjects:=True, contents:=True, UserInterfaceOnly:=True
    End If
    の3行にしてね。以上追記でした。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません