[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートを保護するとダブルクリックで色変更の設定が無効になってしまう』(yupi)
いつも勉強させて頂き、有難うございます。
今回は、
入力可能セルを指定しsheet保護をかけたのですが、ダブルクリックで色が変わる設定がエラーになってしまうのをどうすればいいかのご相談させてください。
セルを指定し、ロックを外し、(ロックされた、されない)セルの範囲の選択をチェックし、sheetを保護しました。
ダブルクリックの設定は以下のコードです。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("M7:M18")) Is Nothing Then
Worksheets("請求書一式").Range("AK1") = Range("A1")
Worksheets("請求書一式").Range("AN1") = Target.Value
Application.Goto Worksheets("請求書一式").Range("A1")
Cancel = True
End If
If Not Intersect(Target, Range("N7:N18,B25:B192")) Is Nothing Then
With Selection.Interior
If .ColorIndex = xlNone Then
.ColorIndex = 4
Else
.ColorIndex = xlNone
End If
End With
Cancel = True
End If
If Not Intersect(Target, Range("A25:A192")) Is Nothing Then
Worksheets("注文書一式").Range("L9") = Range("A1")
Worksheets("注文書一式").Range("O9") = Target.Value
Application.Goto Worksheets("注文書一式").Range("A1")
Cancel = True
End If
End Sub
このうち、別のsheetへジャンプする上下2つのことはできたのですが、
真ん中の、色が変わるという設定だけがエラーになってしまいます。
因みに、ジャンプするsheet(ここでは『請求書一式』『注文書一式』)を保護してしまうと、これもエラーになりジャンプできません。
あともう少しで完成!あとはセルの保護だけというところで躓いています。
何卒、ご教示頂きたくよろしくお願いいたします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
If Not Intersect(Target, Range("A25:A192")) Is Nothing Then With Worksheets("注文書一式") .Unprotect .Range("L9") = Range("A1") .Range("O9") = Target.Value .Protect Application.Goto .Range("A1") End With Cancel = True End If (???) 2017/08/07(月) 14:59
コメントを頂いてから、ジャンプのコードはできたのですが(当たり前ですね(~_~;))
やはり、色の変更のコードが応用できません!
なにせ、皆様にご教示していただいたコードを組み合わせて使っている未熟者なもので。
以下の段階で詰まっています。
If Not Intersect(Target, Range("N7:N18,B25:B192")) Is Nothing Then
With Selection.Interior
.Unprotect
.ColorIndex = xlNone
.ColorIndex = 4
.Protect
.ColorIndex = xlNone
End With
Cancel = True
End If
何卒、色変更の件、ご教示ください。
(yupi) 2017/08/07(月) 15:59
できました!
有難うございました!
過去ログ【20050615120953】を見つけてできました。
Me.Protect , , , , True 'UserInterFaceOnlyだけをTrueにして
With Target.Interior 'Withでくくって
If .ColorIndex = xlNone Then '色が付いていなかったら色をつけて .ColorIndex = 6 '←色を変える場合はこの数字を変える Else 'それ以外だから色が付いて(る?)たら、色をけす .ColorIndex = xlNone End If End With End Sub
いつもいつも有難うございました。
あとはマクロを有効にするだけです。
頑張ってやってみます。
今後ともよろしくお願いいたします。
(yupi) 2017/08/07(月) 17:13
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.