2017-06-12 2 views
0

私はVBScriptソリューションを探しています。VBScript - ユーザーが非表示のワークシートを表示しないようにする

私は、ワークシートを保護することができます:私は、ワークシート非表示にすることができます

のActiveSheet.Protect "パスワード"

を:

ActiveSheet.Visible = Falseの

をしかし、ユーザーがまだ再表示することができますパスワードのないExcelのワークシート その解決策はありますか? おかげエクセルUIから非表示解除の可能性なし

+0

ブックを保護する必要があります – krib

+0

シートのみ - パスワードなしでブックを表示する必要があります。しかし、私は1つのワークシート、パスワードで保護された参照してください。 – Mischka

+0

ブックを非表示にした後にブックを保護しない限り、シートをフェッチすることは可能です。シートだけを保護すると、そのシートの変更が保持されます。 – krib

答えて

0

隠す:コメントで追加された明確化した後 :

ActiveSheet.Visible = xlSheetVeryHidden

はおそらく、VBScriptではActiveSheet.Visible = 2

EDITなります

私は思いますこれを達成する唯一の方法は、常にそれを隠してVBA projを保護するためにActivateイベントコードを追加することですパスワードで処理します。以下のようなもの。

Private Sub Worksheet_Activate() 
    ActiveSheet.Visible = xlVeryHidden 
End Sub 

次に、あなたがハードコーディングされたパスワード(パスワードが引数として渡され、ハードコードされた文字列に対して検証されます)で、このシートを再表示するSubまたはFunctionを追加することができます。このSubでは、グローバル変数をActivateロジックをバイパスするように設定できます。

その後、VBAイミディエイトウィンドウから再表示も機能しません。 BeforeSaveイベントでは、このシートを非表示にして他のユーザーには表示されないようにすることができます。

これがあなたのニーズを満たしているかどうかはわかりませんが、これ以上達成するのは難しいと思います。

+0

良いグレー 問題は、私はそれを再現したいが、パスワードだけである。時々私はシート値を見なければならない。 (私は私のポストでそれを忘れていた) – Mischka

+0

他の問題私はALT + F11でパスワードなしで可視性を0に設定することができます:( – Mischka

+0

この機密データを隠すもう1つのソリューションは、完全なパスワードで保護された別のブックに保存し、Excelのようなバックグラウンドで開くことですここに記載されている:[表示なしでVBAで読むためのExcelファイルを開く](ht tsc://stackoverflow.com/questions/579797/open-excel-file-for-reading-with-vba-without-display) – smartobelix

関連する問題