システムwiki

ワークシートを保護するときのAllowFormattingCell

james.z 受付中 最終更新日:2021-06-14 18:16

こんにちはみんな、

ロックされたセルとロック解除されたセルの両方があるワークシートを保護しようとしています.ユーザはロック解除されたセルを自由に編集することができますが、ロックされたセル内のフォーマット(テキスト、ハイライトなど)のみを変更できます.

以下は私の符号化です.私の問題は次のとおりです.シートはまったく保護されていません!ロックされたセルとロック解除されたセルの両方で自由に編集できます.

任意の提案?

ワークブック(MasterToolName).Worksheets(ToolMasterSheetM) .enabledelection= XLNORENTRITIONS
.protect password:= strpassword、_
内容:= true、_
許可する:= true、_
AllowFiltering:= true、_
AllowFormattingCells:= true

返信リスト(回答:4)

4 #
myall

私はこれをテストし、それは私のためにうまくいった-私のテストコードは以下のようにしていました.
私はあなたの例のステートメントを終わらせていないので、おそらくさらにダウンしています.その場合、私はいくつかの後のステートメントがパスワード保護をオフにしていないと想定しています.
また、あなたが本当にロックされることが予想される細胞が本当にそうであり、その逆もあることを確認してください.
ワークシートの保護を手動で設定した場合は、予想されるセルをロックアウトします.

sub test()
Dim Strpasswordが文字列として
strpassword= "help"
ワークシート( "Sheet1")
.enableSelection= XLNORESTRICTIONS
.protectパスワード:= strpassword、_
内容:= true、_
許可する:= true、_
AllowFiltering:= true、_
allowformattingCells:= true
際に終わる
終了サブ

応答4# ->にスキップ
3 #
james.z

こんにちはマレー、

お返事をありがとうございます.あなたが正しい、コーディングがうまく機能していたようです.

私はいくつかの研究をしました.コーディングが実行され、新しいブックが保存された後、ユーザーが編集をすることを可能にする範囲があります.(下のスクリーンショットを参照してください.)

この許容された範囲はテンプレートファイルに存在しませんでしたが、作成された各ワークブックに存在しています(それらのうち80プラス).

したがって、私は私のコーディングのどこかにあると思います(実際には)この許容範囲を作成しましたか?しかし、私は単にどちらの行をそうしたのかわかりません.

コーディングの中のどのラインがそうしている可能性があると思いますか.ありがとう.

応答3# ->にスキップ
2 #
myall

コード全体を見ずに本当に言うことはできません-スニペットには確かに何もありません.しかし、私はあなたの「ユーザーが範囲の編集を編集することを許可する」という疑いが役に立たないのを疑っています-私はそれが特定の目的を持っているので私自身を使ったことがない( support.office.com/ja-jp/article...
これが私の一般的なアプローチです(これは、リンクされたページ上の「特定のセルのみのみ」を最初のセクションに逆のようなものです.
まず、「ユーザーが範囲の編集を許可する」ボックスを削除/クリアする
[すべて選択]ボタンをクリックすると、ワークシート全体を選択します.
セル、フォーマットを右クリックし、ロックされたボタンが保護タブでチェックされていることを確認します(現在、ロックされてロック解除の混合を示す青いドットがあるおそらくおそらく青いドットがあります).
これで、編集できるセルを選択して、右クリックしてロックされたボタンを右クリックします.
今度はシートを保護します-ロック解除されたセルは特に編集可能で、残りはしません.
これでコードを実行してください.シートが既に保護されている場合VBAはエラーをスローします.これを克服するために、コードはあなたのコードが具体的にはシートを具体的に保護する必要があります(必要に応じてパスワードを付けて)、必要なものは何でも、保護を切り替える必要があります.
戻る.例えば:

シート( "sheet2").保護解除( "パスワード")
'
'スタッフをするコード
'
シート(「シート2」)保護(「パスワード」)

応答2# ->にスキップ
1 #
james.z

こんにちはマレー、

ありがとう.あなたは正しいです-シート全体が保護されている前に、セルはロック/ロック解除されなければなりません.

私はシートを保護する前にいくつかのコーディングを行うことによって、私のコーディングの一部によって作成された "編集の範囲を編集すること]を削除する前にいくつかのコーディングを許可することができました(私はそれがわかりません).

ユーザーがフィルタできるようにシートを保護する前にフィルタを有効にしました.シートが保護された後にユーザーは手動でフィルタを有効にできません-それは事前に行われなければなりません.

今私の問題は並べ替えです.シートが保護された後に並べ替えることができる方法がないようです.

念頭に置いて、これらの活動はすべてVBAで起こる-標準インタフェースの使用について話していません.

シートが保護された後にソートを可能にすることができる提案はありますか? ProtectメソッドのPorceStortingプロパティは機能しないようです.(