No.3ベストアンサー
- 回答日時:
>Password:="パスワード"
もう、おわかりになってしまいましたが、
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row < 4 Then
Me.Protect "passward"
Else
Me.Unprotect "passward"
End If
End Sub
ちょっと洒落た書き方を教えておきます。
標準モジュールを設けて、その一番上の1行目に
Public Const PWD = "mypassword"
シートモジュールには、直接書くかわりに、このように変数を置いてもよいです。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row < 4 Then
Me.Protect PWD
Else
Me.Unprotect PWD
End If
End Sub
'//
VBAに詳しい人なら分かってはしまいますが、ちょっと覗いたぐらいでは、PWDが、どうして、"mypassword" か、気がつかないかもしれません。
No.2
- 回答日時:
#1の回答者です。
ちょっと恥ずかしい書き方をしてしまいました。
ActiveSheet.Protect
マクロの経験者としては、
Me.Protect 'I,my,me の Me で、自分のシートという意味です。
と書くべきでした。そのままActivesheetでも、問題はありません。
このマクロの別な方法を、今年の9月の始めころから探し始めましたが、できるまでには、たぶん、1年以上は掛かりそうです。要するに、隠れている(コンテクチュアル)メニューを操作するということを考えていた最中に、今の方法を偶然に見つけました。私自身、なんとなくできることが不思議な気がします。
No.1
- 回答日時:
こんにちは。
1行~3行までの間で、入力する場所には、あらかじめ、書式の保護[タブ]で、ロックを外しておいてください。
画面下のシート名を右クリックして、その画面に、以下のようなコードを貼り付けます。とりあえず、この方法で試してみてください。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row < 4 Then
ActiveSheet.Protect
Else
ActiveSheet.Unprotect
End If
End Sub
'//
まだ、他の方法も考えてはいるのですが、そちらの方は実現できていません。
すばらしいです。3行目以上をクリックすると強制的にシートの保護になりました。非常に助かりました。また、当方には全く見たこともないコードでして、大変勉強になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel リンク先のエクセルファイルの削除 同時に行を削除したい 1 2022/11/29 16:20
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Excel(エクセル) エクセルである文字が入っている行とその上下の行を削除したいのですが、一気にできる方法はないですか? 5 2022/10/14 14:14
- Excel(エクセル) エクセルの複写について 4 2022/04/10 01:02
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) エクセルでセルの値分の個数の数字列を自動で入れたい 8 2023/03/14 18:00
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- Excel(エクセル) LibreOffice Calcでのセルの挿入について 1 2022/11/06 11:21
- 格安スマホ・SIMフリースマホ SIMカードのロックについて 1 2022/03/29 15:02
- Windows 10 Microsoft IMEを無効化する方法 1 2022/07/28 08:20
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBAで行削除できないようにするには
その他(プログラミング・Web制作)
-
エクセルでセルの挿入・削除を禁止し、他のセルの列や行がずれないようにし
その他(Microsoft Office)
-
エクセル関数で日付かどうかの確認?
Excel(エクセル)
-
-
4
シートの保護のあとセルの列、幅を動かせるようにしたい
Excel(エクセル)
-
5
エクセル VBA で行の右クリックメニューから行の挿入削除を無効にしたい
Excel(エクセル)
-
6
シート保護の状態で行の追加を行いたい
その他(Microsoft Office)
-
7
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
8
EXCEL2003でロックされたセルを含む行の削除、追加を許可したい
Excel(エクセル)
-
9
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
10
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
11
【エクセル】行挿入で数式もいっしょにコピーしたい
Excel(エクセル)
-
12
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
13
エクセル ファイルを削除できないようにしたいです
Excel(エクセル)
-
14
Excelで書式の変更を禁止しデータ入力だけ許可したい
Excel(エクセル)
-
15
VBA シートの切り替えができないようにするには
PowerPoint(パワーポイント)
-
16
エクセルVBAで開いているファイルをコピーする方法
Visual Basic(VBA)
-
17
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
18
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
19
ExcelVBAで最終行を誤認する問題の回避方法
Visual Basic(VBA)
-
20
エクセルVBA/イベント発生でコピペ不能はなぜ?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
Excelで数字を入れたら対応する...
-
自分の専門分野の仕事。初見で...
-
エクセルで複数のシートのクリ...
-
エクセルで特定の行だけ行削除...
-
【エクセル】「実行時エラー’10...
-
エクセル シート内の一番下のセ...
-
エクセル:セル内の文字列の最...
-
複数シートのグループ化ができ...
-
前月分を次月シートに繰越でき...
-
【エクセル】フリーワード検索...
-
EXCELのダイアログシートって、...
-
エクセルのマクロ実行後にカー...
-
Excelのシート上のShapeにイベ...
-
エクセルVBAでOUT LOOKメールに...
-
セルの一部分だけを太字にする方法
-
複数のブックに一括で値入力す...
-
Excelでセル内の文字をファイル...
-
excel定数の違いについて。xlAu...
-
「元に戻す」キーが働かない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
Excelで数字を入れたら対応する...
-
エクセルファイルを開いた回数...
-
エクセルで複数のシートのクリ...
-
エクセル シート内の一番下のセ...
-
【エクセル】「実行時エラー’10...
-
Excelのシート上のShapeにイベ...
-
エクセルで特定の行だけ行削除...
-
Excelでセル内の文字をファイル...
-
【エクセル】フリーワード検索...
-
長い時間かかるマクロが実行中...
-
エクセル:セル内の文字列の最...
-
EXCELのダイアログシートって、...
-
セルの一部分だけを太字にする方法
-
エクセルで○をつけるマクロ設定
-
エクセルマクロでファイル名や...
-
前月分を次月シートに繰越でき...
-
excelで画像のハイパーリンクを...
-
シートではなくBOOK間で重複し...
-
エクセルVBAで実行中画面を...
おすすめ情報
すみません。あと一つ。3行目までのどこかのセルをクリックして、「保護の解除」ボタンを押すと、保護が解除できてしまうので、ボタンを押したときにパスワードを要求できるようにすることは可能でしょうか。
失礼しました。調べたところ、以下の記述でできました。
ActiveSheet.Protect Password:="パスワード"