![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.2ベストアンサー
- 回答日時:
個人的に行っているのは、メンテなどでシートの保護を解除したり、また保護を掛けたりするのが面倒なので以下のようにしています。
--------------------------------------------------------------------------------
☆ 保護したいシートに
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
Private Sub Worksheet_Activate()
If 保護無 Then
ActiveSheet.Unprotect
Else
ActiveSheet.Protect UserInterfaceOnly:=True
End If
End Sub
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
☆ 標準モジュールに
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
Option Explicit
Public 保護無 As Boolean
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
Sub モード切替()
If 保護無 Then
If MsgBox("保護状態にしますか?", vbDefaultButton1 + vbYesNo) = vbYes Then
ActiveSheet.Protect UserInterfaceOnly:=True
保護無 = False
End If
Else
If MsgBox("保護を解除しますか?", vbDefaultButton2 + vbYesNo) = vbYes Then
ActiveSheet.Unprotect
保護無 = True
End If
End If
End Sub
--------------------------------------------------------------------------------
こうすると「保護無」を「True」にすれば自由に書き換えが出来るようになるし、起動時には「保護無」が「False」になるので保護のかけ忘れも減ります。
GooUserラックさん、ありがとうございます
たいへん役立つマクロを教えていただきました
使わせていただきます
前回もイベント割り込みの再開と停止教えていただきました
それと、複数セルの選択禁止で教えていただいたマクロですが
列の再表示で2列選択できなくなってしまうので、GooUserラックさんに
最初に教えていただいたマクロを使わせていただいています
ありがとうございました
No.1
- 回答日時:
ブックを開いたりシートが保護が必要なシートに切り替わった時の最初にです。
ただ何度も指定するのも何なのでブックを開いたときに必要なシートをまとめて
「Sheets("Sheet1").Protect UserInterfaceOnly:=True」
のように指定した方が良いと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでシートの保護をかける際に「書式設定の変更」を有効にする 1 2023/04/17 18:18
- Visual Basic(VBA) ExcelVBA ドロップボックスで月を選択するとそれ以降のデータが残るようにしたい。 3 2022/12/16 14:53
- Visual Basic(VBA) ワイルドカード「*」を使うとうまくいかないマクロの添削をお願いします 3 2022/03/26 09:39
- Visual Basic(VBA) Excel VBAのデバッグ 8 2022/12/13 16:08
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
【エクセルVBA】「Protect UserInterfaceOnly」を2重にかけてはダメですか?
Visual Basic(VBA)
-
エクセルVBAでブック保護のUserInterfaceOnly:=Trueはダメ?
Excel(エクセル)
-
【Excel】他ブックからOpenされたブックはUserInterfaceOnlyが効かない?
その他(Microsoft Office)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
フォントの大きさ
Visual Basic(VBA)
-
6
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
7
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
8
EXCEL(VBA)でシート保護がかかったシートにクリックボードから貼り付けしたい
Visual Basic(VBA)
-
9
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
10
EXCEL シート保護するとマクロが正常動作しない
Excel(エクセル)
-
11
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
12
[Excel]保護されたシートのマクロによるオートフィルタ有効設定について
Excel(エクセル)
-
13
EXCELマクロ 保護されているシートのダイアログを表示させない方法
Visual Basic(VBA)
-
14
強制的にマクロを有効にするVBA
Excel(エクセル)
-
15
UserForm1.Showでエラーになります。
工学
-
16
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
17
シート保護を掛けたまま並べ替えやオートフィルタをするには
Excel(エクセル)
-
18
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
-
19
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
20
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
ワークシートそのものの色を変...
-
エクセルで複数のシートに画像...
-
エクセルマクロでシート名を条...
-
エクセル2013 検索→シート...
-
エクセルでブック内の倍率がバ...
-
エクセル シート表示
-
【ExcelVBA】マクロの入ったシ...
-
Excel(エクセル)で表紙(トップ...
-
エクセルの2つのシートを並び...
-
エクセルのシート名の変更がで...
-
エクセルのシートのタイトルバ...
-
EXCELの「シートの見出し」のフ...
-
WORDファイルに複数のシートを...
-
特定のシートのみ再計算させな...
-
エクセルで開くページを指定したい
-
InputBoxに入力した言葉をシー...
-
EXCELの複数シートのVlookupで...
-
Excelのシートに自動で日付を入...
-
アクセスからエクセルのシート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
特定のシートのみ再計算させな...
-
エクセルで複数のシートに画像...
-
ハイパーリンクでジャンプした...
-
ワークシートそのものの色を変...
-
エクセルの2つのシートを並び...
-
【ExcelVBA】マクロの入ったシ...
-
エクセル、特定のシートにパス...
-
エクセルのシート連番の振り直し
-
EXCELの図形(テキストボックス)...
-
特定の複数のシートに同じ処理...
-
【Excel VBA】データ貼り付け先...
-
エクセルのシー名を二段表示に...
-
EXCELの「シートの見出し」のフ...
-
Accessのテーブルを既存のExcel...
-
Wordで差し込み印刷時に表示す...
-
accessへエクセルの複数のシー...
-
エクセル、別のシートの表をポ...
-
指定したシート名以外を非表示...
おすすめ情報
すぐに教えていただいてありがとうございます
ThisWorkbookのPrivate Sub Workbook_open()にシート名の分だけ
下記のように全部書けばいいですか
Sheets("早見表").Protect UserInterfaceOnly:=True
Sheets("入力").Protect UserInterfaceOnly:=True
Sheets("登録").Protect UserInterfaceOnly:=True