
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAで行削除できないようにするには
その他(プログラミング・Web制作)
-
エクセルでセルの挿入・削除を禁止し、他のセルの列や行がずれないようにし
その他(Microsoft Office)
-
excelの不要な行の削除ができない!
Excel(エクセル)
-
-
4
VBAでエクセルのワークシートに、列と行の、挿入と削除を禁止したい
その他(ソフトウェア)
-
5
エクセルの行と列が突然削除できなくなりました
Excel(エクセル)
-
6
エクセル VBA で行の右クリックメニューから行の挿入削除を無効にしたい
Excel(エクセル)
-
7
エクセルの右クリックで行削除ができない
その他(パソコン・スマホ・電化製品)
-
8
シート保護の状態で行の追加を行いたい
その他(Microsoft Office)
-
9
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
10
エクセルの行挿入、行削除の禁止
Excel(エクセル)
-
11
Excelの入力規則で2列表示したい
Excel(エクセル)
-
12
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
13
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
14
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
15
excelを共有ファイルにすると行削除できない?
Excel(エクセル)
-
16
VBAのTextBoxに半角数字のみ入力したい
Visual Basic(VBA)
-
17
エクセルVBAで選択状態を解除のしかた
Excel(エクセル)
-
18
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
19
アクティブになっている行をマクロで削除したい
Excel(エクセル)
-
20
【excelVBA】Findメソッドで検索対象を複数列
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
【エクセル】フリーワード検索...
-
エクセルのワークシート(テン...
-
Excelで数字を入れたら対応する...
-
EXCELのダイアログシートって、...
-
エクセルで特定の行だけ行削除...
-
マクロ1があります。 A1のセル...
-
エクセルで複数のシートのクリ...
-
長い時間かかるマクロが実行中...
-
シートではなくBOOK間で重複し...
-
エクセル シート内の一番下のセ...
-
前月分を次月シートに繰越でき...
-
エクセルファイルを開いた回数...
-
エクセル:セル内の文字列の最...
-
任意のセルでマクロを実行させたい
-
セルの一部分だけを太字にする方法
-
Excelでセル内の文字をファイル...
-
excelで画像のハイパーリンクを...
-
複数のテキストデータ(文章)を...
-
excelVBAの実行時エラー'1004'...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のシートのクリ...
-
Excel VBAでのWorksheet_Change...
-
マクロ1があります。 A1のセル...
-
Excelのシート上のShapeにイベ...
-
Excelで数字を入れたら対応する...
-
指定値をマクロで検索&シート移動
-
【エクセル】「実行時エラー’10...
-
【エクセル】フリーワード検索...
-
エクセル シート内の一番下のセ...
-
エクセルファイルを開いた回数...
-
EXCELのダイアログシートって、...
-
長い時間かかるマクロが実行中...
-
エクセルで特定の行だけ行削除...
-
前月分を次月シートに繰越でき...
-
エクセル マクロ 一定時間おき...
-
excel定数の違いについて。xlAu...
-
エクセル:セル内の文字列の最...
-
エクセルVBAで実行中画面を...
-
セルの一部分だけを太字にする方法
-
エクセルVBAコード
おすすめ情報
すみません。あと一つ。3行目までのどこかのセルをクリックして、「保護の解除」ボタンを押すと、保護が解除できてしまうので、ボタンを押したときにパスワードを要求できるようにすることは可能でしょうか。
失礼しました。調べたところ、以下の記述でできました。
ActiveSheet.Protect Password:="パスワード"