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も見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
VBAで行削除できないようにするには
その他(プログラミング・Web制作)
-
エクセルでセルの挿入・削除を禁止し、他のセルの列や行がずれないようにし
その他(Microsoft Office)
-
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
-
4
EXCEL2003でロックされたセルを含む行の削除、追加を許可したい
Excel(エクセル)
-
5
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
シート保護の状態で行の追加を行いたい
その他(Microsoft Office)
-
8
エクセルの行挿入、行削除の禁止
Excel(エクセル)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
エクセル VBA で行の右クリックメニューから行の挿入削除を無効にしたい
Excel(エクセル)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
13
エクセルの行と列が突然削除できなくなりました
Excel(エクセル)
-
14
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
15
数式の計算結果により表示されたセルを数える関数を教えてください
Excel(エクセル)
-
16
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
17
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
18
非表示の列をすべて削除するマクロ
Excel(エクセル)
-
19
【VBA】土日をスキップして日付計算
Visual Basic(VBA)
-
20
【エクセル】行挿入で数式もいっしょにコピーしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のシートのクリ...
-
Excel VBAでのWorksheet_Change...
-
エクセル シート内の一番下のセ...
-
Excelのシート上のShapeにイベ...
-
エクセルファイルを開いた回数...
-
Excelでセル内の文字をファイル...
-
エクセルで特定の行だけ行削除...
-
セルの一部分だけを太字にする方法
-
エクセル:セル内の文字列の最...
-
前月分を次月シートに繰越でき...
-
長い時間かかるマクロが実行中...
-
【エクセル】「実行時エラー’10...
-
エクセルのマクロを教えてくだ...
-
excelのマクロが上手く動作しま...
-
マクロ1があります。 A1のセル...
-
Excelで数字を入れたら対応する...
-
任意のセルに貼り付けをするマ...
-
エクセルのマクロ実行後にカー...
-
エクセルVBAで実行中画面を...
-
記録したマクロを他のシートに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のシートのクリ...
-
Excelで数字を入れたら対応する...
-
Excel VBAでのWorksheet_Change...
-
エクセルファイルを開いた回数...
-
Excelのシート上のShapeにイベ...
-
【エクセル】フリーワード検索...
-
【エクセル】「実行時エラー’10...
-
セルの一部分だけを太字にする方法
-
長い時間かかるマクロが実行中...
-
Excelでセル内の文字をファイル...
-
エクセルで特定の行だけ行削除...
-
エクセル シート内の一番下のセ...
-
エクセル:セル内の文字列の最...
-
EXCELのダイアログシートって、...
-
エクセルVBAで実行中画面を...
-
前月分を次月シートに繰越でき...
-
マクロ1があります。 A1のセル...
-
excel定数の違いについて。xlAu...
-
エクセルマクロでファイル名や...
-
エクセルのマクロ実行後にカー...
おすすめ情報
すみません。あと一つ。3行目までのどこかのセルをクリックして、「保護の解除」ボタンを押すと、保護が解除できてしまうので、ボタンを押したときにパスワードを要求できるようにすることは可能でしょうか。
失礼しました。調べたところ、以下の記述でできました。
ActiveSheet.Protect Password:="パスワード"