
No.1ベストアンサー
- 回答日時:
こんばんは、
>マクロを教えてください
どこまでをどのように伝えれば良いのかわかりませんが、
コードを書いておきます。
何かで、なので UserFormを使用した例です。
呼び出しSampleは標準モジュールで
UserFormは添付図のような形です。
すべてのシートが同じ状態である事(保護又は非保護)
標準モジュール
Option Explicit
Sub Sample()
Dim cnt As Integer
Dim ws As Worksheet
Dim Ufm_caption As String, Btn_caption As String
For Each ws In Worksheets
If ws.ProtectContents = True Then
cnt = cnt + 1
Ufm_caption = "Unlock with Password"
Btn_caption = "UnProtect"
Else
Ufm_caption = "Lock with Password"
Btn_caption = "Protect"
End If
Next
If cnt > 0 And cnt < Worksheets.Count Then
MsgBox ("Is some sheet protected?")
Exit Sub
Else
UserForm1.Caption = Ufm_caption
UserForm1.CommandButton1.Caption = Btn_caption
UserForm1.Show
End If
End Sub
Formモジュール
Option Explicit
Private Sub UserForm_Initialize()
TextBox1.PasswordChar = "*"
End Sub
Private Sub CommandButton1_Click()
Dim flag As Boolean
Dim ws As Worksheet
Dim msg As String
If CommandButton1.Caption = "Protect" Then
flag = True
msg = "Set the sheet protection"
Else
msg = "Released the sheet protection"
End If
For Each ws In Worksheets
On Error GoTo myErr
If flag = True Then
ws.Protect Password:=TextBox1.Value
Else
ws.Unprotect Password:=TextBox1.Value
End If
Next
MsgBox msg
Unload Me
Exit Sub
myErr:
MsgBox ("The password is incorrect !")
End Sub
以前作ったモノを改造しました。
一応、検証済み

この回答へのお礼
お礼日時:2021/03/18 20:45
すいません。マクロの基本の基本が分かっていません。標準モジュールにすべて貼りつける程度しか分かりません。Formモジュールとはどのように扱うのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのVBAで集計をしたい
-
【マクロ】【相談】Excelブック...
-
コマンドボタンがデザインモー...
-
VBAで条件によってシート見出し...
-
Excelマクロ(Range)につ...
-
全てのシートから特定文字を含...
-
EXCELでワークシートを開いたら...
-
エクセルシートのセルに現在時...
-
マクロを複数シートに実行する...
-
エクセルで複数のSheetを一括フ...
-
マクロを特定の複数シートで実...
-
EXCELの起動時に常に同じ...
-
マクロ 各シートの決められた位...
-
Excelのマクロの呼び出し元を知...
-
メッセージボックスでシート名...
-
左隣のシートをコピーして挿入
-
エクセルでシートの並び替えで...
-
日付を読み込むマクロ
-
エクセルを開いたとき常に同じ...
-
複数シートの保護・解除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのVBAで集計をしたい
-
【マクロ】【相談】Excelブック...
-
コマンドボタンがデザインモー...
-
エクセルを開いたとき常に同じ...
-
【 Excel】シートの見出しに自...
-
マクロを複数シートに実行する...
-
エクセル ヘッダー(フッター)...
-
EXCELでマクロを使わずに図形の...
-
Excelのマクロの呼び出し元を知...
-
EXCELのエラー
-
エクセルでシートの並び替えで...
-
マクロを特定の複数シートで実...
-
エクセルで複数のSheetを一括フ...
-
VBA シート名を先月の名前に...
-
メッセージボックスでシート名...
-
マクロ 各シートの決められた位...
-
Excel:複数シートから条件に合...
-
EXCELでワークシートを開いたら...
-
エクセルのチェックボックス
-
エクセルVBAでcmbBoxのプロパテ...
おすすめ情報