[[20191216162801]] 『シートの保護中に置換を可能にする方法』(スイマ) ページの最後に飛ぶ

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

 

『シートの保護中に置換を可能にする方法』(スイマ)

保護をしているシートで、一部セルのロックを解除しています。

このロック解除されたセルで置換を可能にしたいのですが、
セルのロックは解除されていても、
シートの保護がかかっていると置換ができません。

マクロで、シートの保護がかかっていても、
セルロックが解除されていれば置換可能にすることはできないでしょうか?

お手数ですがご教示の程よろしくお願いいたします。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 シートの保護解除
 処理
 シートの保護

 と「マクロ」で行います。
(OK) 2019/12/16(月) 17:07

 シートを保護するときに

 ActiveSheet.Protect UserInterfaceOnly:=True

 とすれば、マクロからの置換は可能になります

(渡辺ひかる) 2019/12/16(月) 17:16


 これ、置換対象はロックされたセル、ロックされていないセル両方にありロックされていないセルだけ
 置換対象にしたいということなのだろうか?

(ねむねむ) 2019/12/17(火) 09:23


ご返信いただきありがとうございます。

説明が下手で申し訳ありません。

エクセルで、ある入力フォーマットを作成しています。
目的は、複数の人に定型フォームで数値等を入力してもらうためです。
フォーマットを勝手に変えてしまう人がいるため、変えられないように、シートの保護をかけて一部のセルだけ入力可能としています。

この状況で、入力者にエクセルの「置換機能(Ctrl+H)」も使えるようにしたいのです。

今使っているマクロは以下の通りです。●はパスワードです。
(このマクロは、シート保護がされていてもグループ化の開閉を可能にすることを目的としています)

 Private Sub Workbook_Open()
     For Each W_Sheet In Worksheets
        With W_Sheet
         .Unprotect Password:="●●"
         .EnableOutlining = True
         .Protect Password:="●●", Contents:=True, DrawingObjects:=False, UserInterfaceOnly:=True, AllowFormattingCells:=True
        End With
    Next
 End Sub

現状、このマクロだけですと、入力可能なセルのみを選択して「置換」をしようとしても、ロックがかかっている旨エラーが出ます。

何か方法はありますでしょうか?
(スイマ) 2019/12/17(火) 10:18


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim 入力可能なセル As Range
    Set 入力可能なセル = Range("C3,D5") '適宜編集
    If Intersect(Target, 入力可能なセル) Is Nothing Then
        ActiveSheet.Protect Password:="●●", Contents:=True, DrawingObjects:=False, UserInterfaceOnly:=True, AllowFormattingCells:=True
    Exit Sub
    Else
        ActiveSheet.Unprotect Password:="●●"
    End If
End Sub
(mm) 2019/12/17(火) 10:49

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.