

VBAを始めたばかりです。
言葉等に間違いがあると思うのですがお許しください。
指定したセル(B3)に入力があればB3のみにロックをかけて、そうでなければ書き込み可能にしたいです。また、シート内にB3以外にもロックをかけてあるセルがあります。
下記の'1のところでエラーが出てしまい困っています。
どうしたらよいのかお教えください。
よろしくお願いいたします。
Sub test()
Dim w As Worksheet
Dim r As Range
Set w = Worksheets("sheet1")
Set r = w.Range("B3")
If r = "" Then
w.Unprotect
ElseIf r <> "" Then
r.Locked = True '1
End If
End Sub
No.3ベストアンサー
- 回答日時:
対象のシートがアクティブになった時ならば
-----------------------------------------------------------------------------------------
Private Sub Worksheet_Activate()
ActiveSheet.Unprotect
If Range("B3").Value = "" Then
Range("B3").Locked = False
Else
Range("B3").Locked = True
End If
ActiveSheet.Protect
End Sub
-----------------------------------------------------------------------------------------

No.2
- 回答日時:
手動でロックならば以下のような感じでいかがでしょうか?
-----------------------------------------------------------------------------------------
Sub test()
With Sheets("Sheet1")
.Unprotect
If .Range("B3").Value = "" Then
.Range("B3").Locked = False
Else
.Range("B3").Locked = True
End If
.Protect
End With
End Sub
-----------------------------------------------------------------------------------------
エラーの原因ですがロック状態を変更するときにシートの保護を一時的に解除しておかないといけないからだと思います。
自動でロックならば対象のシートへ(下図参照)
-----------------------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "B3" Then
ActiveSheet.Unprotect
If Target.Value = "" Then
Target.Locked = False
Else
Target.Locked = True
End If
ActiveSheet.Protect
End If
End Sub
-----------------------------------------------------------------------------------------

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) VBAについて教えてください 4 2022/11/10 12:44
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- その他(Microsoft Office) エクセル VBAについて 2 2022/09/21 22:21
- Visual Basic(VBA) エクセル VBAで複数セル選択時エラーになる問題 3 2022/10/04 02:40
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大手のよくみるロック板のある...
-
『ロックな生き方』ってどうい...
-
Excel VBA 選択したセルのみ保...
-
Access200 ADO adLockPessimist...
-
音楽におけるカテゴリーについ...
-
矢沢永吉さんは昔キャロルって...
-
「世に万葉の花が咲くなり」の...
-
ロック・パンク・エモ・グラン...
-
たかが、されど
-
Dellのモニターの高さ調節がで...
-
pci expressに差したカードが抜...
-
旦那がiPhoneにロックかけるよ...
-
障害者っていったい
-
スタンダード
-
デーモン閣下の改名理由について
-
ブラックラグーン15話の最後に...
-
ロック好きな女の子はキライで...
-
ロックのないコインパーキング...
-
オレンジレンジのPVのロケ地
-
皆様教えてください。(Rock an...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スノボ用ワイヤーロックのパス...
-
『ロックな生き方』ってどうい...
-
大手のよくみるロック板のある...
-
ブラックラグーン15話の最後に...
-
マザーボードからSATAケーブル...
-
Dellのモニターの高さ調節がで...
-
たかが、されど
-
旦那がiPhoneにロックかけるよ...
-
Excel VBA 選択したセルのみ保...
-
エクセルでシート保護した後に...
-
ロック好きな女の子はキライで...
-
ロックに生きる、って何?
-
聖飢魔IIとデーモン閣下の所属...
-
Access200 ADO adLockPessimist...
-
恨みが表れてる曲を教えてください
-
オンラインゲームにおけるリー...
-
ノートパソコンのセキュリティ...
-
先日バイト中に有線からクラシ...
-
デジカメ 久しぶりに使おうと思...
-
「Slow Rock」などの意味
おすすめ情報
シートを開いたらマクロが動くようにしようと思っています。
遅くなり申し訳ありません。
よい確認をしてくださいまして、ありがとうございます。
書き忘れていました。
シートが開くと自動で動くようにしたいと思っています。