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

複数のシートで同時にシートの保護をしたい。

エクセルデータを一括して保護を掛けるやりかたはマクロで紹介されているページを多く拝見したのですが、一部を同時にというのはやはり難しいのでしょうか?

私はマクロのこともあまり詳しくはないのですが、可能な方法があれば楽なのにと思い投稿しました。

現在、出勤表をエクセルで製作しております。
1日~31日までシートが31枚
それを個人別にまとめているシートが20枚
さらに一覧状態にしているシートが3枚
となっており、個別にまとめているシート20枚にキーワード付きシート保護をしたいのです。
キーワードは全シート20枚共通として。

セル設定で日付シートのロックを外す方法も考えたのですが、検索語の置き換え機能が使えなくなるため
いい方法が無いかと思っております。

宜しくお願い致します。

A 回答 (3件)

回答No2です。


保護したシートを解除するのでしたら次のようなマクロになりますね。

Sub シートの保護の解除()
Set WS1 = Worksheets("Sheet1")
Dim RowPos As Integer
Application.ScreenUpdating = False
For RowPos = 1 To 20
If WS1.Cells(RowPos, "A") = "" Then Exit For
Worksheets("" & WS1.Cells(RowPos, "A") & "").Activate
ActiveSheet.Unprotect Password:="1234"
Next
WS1.Activate
Application.ScreenUpdating = True
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
ロック、解除ができるよになりました。

マクロを初めて使ったのですが、これから少しずつ勉強しようと思いました。

本当にありがとうございます。

お礼日時:2010/10/19 10:27

例えばシート1のA1セルからA20セルに保護をしたいシートの名前を入力しておきます。


そこで次のようなマクロを実行することでそれらのシートが保護されます。

Sub シートの保護()
Set WS1 = Worksheets("Sheet1")
Dim RowPos As Integer
Application.ScreenUpdating = False
For RowPos = 1 To 20
If WS1.Cells(RowPos, "A") = "" Then Exit For
Worksheets("" & WS1.Cells(RowPos, "A") & "").Activate
With ActiveSheet
.EnableSelection = xlUnlockedCells
.Protect Password:="1234", UserInterfaceOnly:=True
End With
Next
WS1.Activate
Application.ScreenUpdating = True
End Sub

この回答への補足

保護解除時のマクロも合わせて教えていただけませんでしょうか?
宜しくお願い致します

補足日時:2010/10/15 18:17
    • good
    • 0
この回答へのお礼

ありがとうございます。
お陰さまでうまくいきました♪

お礼日時:2010/10/15 18:18

hiroteeさんこんばんは。

merlionXXです。

「一部を同時に」という意味は、54シート中の20シートにだけ保護をかけるという意味なんですね?
マクロで一括してやりたいなら、名前か何かでその20シートを他のシートと識別する必要があります。
たとえば、日にちのシートの名前はすべて"日"で終わっている。
一覧状態のシートには"○○一覧△△"と、一覧という文字が入っている。
その定義に当てはまらないシートがシート保護の対象の個人別のシートになる。
もし、このように識別が可能なら簡単です

Sub TEST01()
  Dim ws As Worksheet
  For Each ws In Worksheets
    If Right(ws.Name, 1) <> "日" And InStr(ws.Name, "一覧") = 0 Then
      ws.Protect Password:="merlion", DrawingObjects:=True, Contents:=True, Scenarios:=True
    End If
  Next ws
End Sub

これでパスワードがmerlionでシート保護されました。
    • good
    • 0
この回答へのお礼

ありがとうございます。
こちらの式でも上手く行きました。

お礼日時:2010/10/15 19:01

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