
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【エクセルVBA】「Protect UserInterfaceOnly」を2重にかけてはダメですか?
Visual Basic(VBA)
-
エクセルVBAでブック保護のUserInterfaceOnly:=Trueはダメ?
Excel(エクセル)
-
【Excel】他ブックからOpenされたブックはUserInterfaceOnlyが効かない?
その他(Microsoft Office)
-
-
4
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
5
EXCEL シート保護するとマクロが正常動作しない
Excel(エクセル)
-
6
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
7
(マクロ)シートを保護してもマクロは利用できる?
Excel(エクセル)
-
8
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
9
シートを保護しても入力規則を使えるようにしたい
Excel(エクセル)
-
10
Excelシートの保護時にデータの並び替え
その他(Microsoft Office)
-
11
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
12
VBA データ(特定値)のある最終行を取得したい
Excel(エクセル)
-
13
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
14
「選択範囲を解除してアクティブセルを選択」をマクロで行うにはどうすればよいでしょうか
Excel(エクセル)
-
15
実行時エラー 438 の解決策をおしえてください。
Visual Basic(VBA)
-
16
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
17
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
18
エクセル、 名前の定義に関数を使用すると参照できない
Excel(エクセル)
-
19
VBAでCOPYを繰り返すと、処理が途中でアイドルする原因はなんでしょうか
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
特定のシートのみ再計算させな...
-
エクセルでブック内の倍率がバ...
-
エクセルシートの見出しの文字...
-
エクセルのファイルサイズが急...
-
ハイパーリンクでジャンプした...
-
Wordで差し込み印刷時に表示す...
-
エクセルで複数のシートに画像...
-
【ExcelVBA】マクロの入ったシ...
-
EXCELの図形(テキストボックス)...
-
エクセルの2つのシートを並び...
-
Accessのテーブルを既存のExcel...
-
ワークシートそのものの色を変...
-
エクセルのシー名を二段表示に...
-
エクセルの複数シートでのリン...
-
エクセル、特定のシートにパス...
-
エクセルのシート連番の振り直し
-
EXCELで存在しないシート...
-
エクセルを開くとメニューバー...
-
(エクセル)Indirect関数で、ハ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルシートの見出しの文字...
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
特定のシートのみ再計算させな...
-
【ExcelVBA】マクロの入ったシ...
-
ハイパーリンクでジャンプした...
-
EXCELの図形(テキストボックス)...
-
EXCELで存在しないシート...
-
エクセルで複数のシートに画像...
-
エクセル、特定のシートにパス...
-
エクセルのシー名を二段表示に...
-
ワークシートそのものの色を変...
-
Wordで差し込み印刷時に表示す...
-
Accessのテーブルを既存のExcel...
-
エクセルのファイルサイズが急...
-
エクセルの複数シートでのリン...
-
エクセルで、シートの名前を変...
-
エクセルの2つのシートを並び...
-
EXCELの「シートの見出し」のフ...
-
Excelでマクロ設定したが反映さ...
おすすめ情報
すぐに教えていただいてありがとうございます
ThisWorkbookのPrivate Sub Workbook_open()にシート名の分だけ
下記のように全部書けばいいですか
Sheets("早見表").Protect UserInterfaceOnly:=True
Sheets("入力").Protect UserInterfaceOnly:=True
Sheets("登録").Protect UserInterfaceOnly:=True