[[20170807134802]] 『シートを保護するとダブルクリックで色変更の設定』(yupi) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シートを保護するとダブルクリックで色変更の設定が無効になってしまう』(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.