• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数のシートで同時にシートの保護をしたい。)

複数のシートで同時にシートの保護をする方法について

このQ&Aのポイント
  • エクセルデータを一括して保護する方法について調査していますが、複数のシートで同時に保護をかけることは難しいようです。マクロを使用する方法もありますが、詳しくない方には難しいかもしれません。
  • 現在、エクセルで出勤表を作成しています。31枚の日付シートと個人別のシート20枚、一覧状態のシート3枚があります。個別にまとめているシート20枚にキーワード付きのシート保護をしたいのですが、キーワードが共通であるため、セル設定でのロック解除は適さないようです。
  • より簡単な方法があれば教えていただきたいです。マクロの使用方法や他の方法についてもアドバイスをいただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.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

hirotee
質問者

お礼

ありがとうございます。 ロック、解除ができるよになりました。 マクロを初めて使ったのですが、これから少しずつ勉強しようと思いました。 本当にありがとうございます。

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えばシート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

hirotee
質問者

お礼

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

hirotee
質問者

補足

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

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

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でシート保護されました。

hirotee
質問者

お礼

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

関連するQ&A

専門家に質問してみよう