2016-11-09 9 views
0

マクロでは、いくつかのセルがロックされる新しいシートを作成できます。私はマクロでこのメソッドを使用します。Excelでこのセルロックをどのように処理できますか? (VBA)

ActiveSheet.Protect UserInterfaceOnly:=False(全体の新しいシート用) そして、いくつかの細胞のために、このマクロで:locked = False

はその後、ロックプロパティを使用して、他のマクロは、TrueまたはFalseを使用してロックする特定の細胞のを切り替えます。たとえば、このシート内のテーブルはロックされていますが、ボタンのマクロは再計算し、テーブルの値を書き換えます。これを行うには、マクロの先頭でtable.Locked = Falseを、マクロの最後にLocked = Trueを再度入力します。

しかし、私は近くにExcelを、保存して再度開いたとき、私はボタンを押して、私は私がこれをどのように"unable to set the Locked property"

を行う必要がありますか?

更新:

Sub userinterface() 

ActiveSheet.Protect UserInterfaceOnly:=True 

End Sub 


Sub locking() 

Range("A1").Locked = False 
Range("A1") = 5 
Range("A1").Locked = True 

End Sub 

だから私は新しいシートを持っている、と私はユーザインタフェースマクロを実行します。シート全体をロックします。次に、ロックマクロを実行します。ロックマクロは、指定されたセルに5を書き込み、セルを再びロックします。それを保存した後、閉じて開いて、ロックマクロを実行したいだけです。この時点で私はエラーになります。

+1

Máté、私たちが必要とするのは、ここで概説した問題を再現するための最小限で完全で検証可能な例です:http://stackoverflow.com/help/mcve経験がないような問題を理解するのが難しいそれを再現することはできません(解決するため)。したがって、ファイルをロックするために現在使用しているコードをすべて追加してください(関連するすべてのマクロと、それらが配置されている場所:たとえば、ワークシートのイベントとして、またはファイルが閉じられたときにイベントとして実行されます)。たぶん、あなたの問題を再現できます。 – Ralph

+0

もちろん、短いです。 –

+1

これはあなたのコードですか?これは正常に動作してはならないことを示すものは何もありません。あなたはあなたの質問に 'table.locked = False'と言うが、コードはそうではないと言いますか? –

答えて

1

ファイルには、UserInterfaceOnlyオプションが保存されておらず、再オープンした後もシートは完全に保護されており、保護されたシートのセルをロック解除することはできません。

あなたはあなたの例では、それはセルのロックを解除するこの例ではもちろん

Sub locking() 

    ActiveSheet.Protect UserInterfaceOnly:=True 
    Range("A1").Locked = False 
    Range("A1") = 5 
    Range("A1").Locked = True 

End Sub 

になりそう保護を解除せずにUserInterfaceOnlyオプションをリセットすることができますが、真のオプションを設定しているが、私はそれがだと仮定しているため必要ありませんあなたの完全なマクロに関連しています。

+0

ありがとう、それは良いでしょう。私は、ユーザーインターフェイスの保護は、ロックされていないセルをロックすると思ったが、私はそれが表示されません。ですから、私はマクロの始めにそれを書かなければなりません。 –

関連する問題