
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)
-
VBAでエクセルのワークシートに、列と行の、挿入と削除を禁止したい
その他(ソフトウェア)
-
-
4
excelの不要な行の削除ができない!
Excel(エクセル)
-
5
エクセルの行と列が突然削除できなくなりました
Excel(エクセル)
-
6
エクセル VBA で行の右クリックメニューから行の挿入削除を無効にしたい
Excel(エクセル)
-
7
シート保護の状態で行の追加を行いたい
その他(Microsoft Office)
-
8
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
9
エクセルの行挿入、行削除の禁止
Excel(エクセル)
-
10
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
11
VBAのTextBoxに半角数字のみ入力したい
Visual Basic(VBA)
-
12
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
13
【excelVBA】Findメソッドで検索対象を複数列
Excel(エクセル)
-
14
アクティブになっている行をマクロで削除したい
Excel(エクセル)
-
15
エクセルの右クリックで行削除ができない
その他(パソコン・スマホ・電化製品)
-
16
数式の計算結果により表示されたセルを数える関数を教えてください
Excel(エクセル)
-
17
エクセルでマクロを使った特定範囲の保護の方法
Excel(エクセル)
-
18
Excelでのコメント表示位置
Excel(エクセル)
-
19
Openイベントを開始させないでエクセルを開く方法を教えて下さい
Windows 10
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
エクセルで特定の行だけ行削除...
-
長い時間かかるマクロが実行中...
-
Excelのシート上のShapeにイベ...
-
マクロの相対セル参照記録って?
-
【エクセル】フリーワード検索...
-
エクセルでシートを保護すると...
-
エクセルで複数のシートのクリ...
-
エクセルVBAで内容変更のたびに...
-
Excelの画像を拡大表示にするには
-
エクセルで指定したセルにペー...
-
Excelで数字を入れたら対応する...
-
エクセルVBAコード
-
エクセル マクロ 一定時間おき...
-
セルの一部分だけを太字にする方法
-
Excelでセル内の文字をファイル...
-
現在のセルの文字列を右隣のセ...
-
Target.Columns.Hidden = True ...
-
「段」と「行」の違いがよくわ...
-
【マクロ】実行時エラー '424':...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
エクセルファイルを開いた回数...
-
エクセルで複数のシートのクリ...
-
エクセルで特定の行だけ行削除...
-
Excelで数字を入れたら対応する...
-
EXCELのダイアログシートって、...
-
セルの一部分だけを太字にする方法
-
長い時間かかるマクロが実行中...
-
Excelのシート上のShapeにイベ...
-
【エクセル】フリーワード検索...
-
マクロ1があります。 A1のセル...
-
【エクセル】「実行時エラー’10...
-
エクセル シート内の一番下のセ...
-
シートではなくBOOK間で重複し...
-
「マクロが含まれているファイ...
-
Excelにて、同じ画像を複数のセ...
-
前月分を次月シートに繰越でき...
-
エクセルのワークシート(テン...
-
エクセル:セル内の文字列の最...
-
Excelでセル内の文字をファイル...
おすすめ情報
すみません。あと一つ。3行目までのどこかのセルをクリックして、「保護の解除」ボタンを押すと、保護が解除できてしまうので、ボタンを押したときにパスワードを要求できるようにすることは可能でしょうか。
失礼しました。調べたところ、以下の記述でできました。
ActiveSheet.Protect Password:="パスワード"