2011-09-15 10 views
0

ワードドキュメント内の1つのワードにパスワードを設定することは可能ですか?Word 2007のシングルワード用パスワード保護

私が望むのは、私たちのIT構造からシステム文書を書くことです。私は同様に文書にパスワードを入れたい。今私は、文書の中のパスワードにロックを解除するために "マスター"パスワードを入力する必要があります。パスワードを入力しないと、文書内のパスワードは見えなくなるか、そうでなければなりません。

これは可能ですか?

答えて

1

はい、可能です。この作業を行うには、Word固有の文書保護とその隠しテキスト属性、およびVBAトリックの組み合わせを使用する必要があります。

まず、文書内のすべてのパスワードを隠しテキストとしてフォーマットします。 (慣れていない人には、表示/非表示機能がtrueに設定されている場合にのみ非表示のテキストが表示されます)

次に、非表示のテキストが表示されないようにするコードを追加し、文書を開くたびに:

Private Sub Document_Open() 
AddProtection 
End Sub 

Sub AddProtection() 
With ActiveDocument 
    .ActiveWindow.View.ShowAll = False 
    .ActiveWindow.View.ShowHiddenText = False 
    .Application.Options.PrintHiddenText = False 
    .Protect Type:=wdAllowOnlyReading, NoReset:=True, Password:="DesiredPassword" 
End With 
End Sub 

いつもWordユーザーは隠し文字を表示できるため、この機能を制御する必要もあります。ほとんどのメニューとリボンコマンドは、インターセプトされたコマンドに名前が付けられたサブルーチンを含むモジュールを作成することによってインターセプトできます。最後に

Sub ShowAll() 

If ActiveDocument.ProtectionType = wdAllowOnlyReading Then 
    'Do nothing 
Else 'restore the Ribbon's toggle function 
    If ActiveDocument.ActiveWindow.View.ShowAll = True Then 
     ActiveDocument.ActiveWindow.View.ShowAll = False 
    Else 
     ActiveDocument.ActiveWindow.View.ShowAll = True 
    End If 
End If 

End Sub 

、我々はユーザーにパスワードの入力を求めるようにいくつかのコードを追加して、正しく入力されている場合、表示:サブShowAllに名前を付けることは、私たちは、この機能を制御し、唯一のパスワードが入力されて隠されたテキストを表示することができます以前は隠されたテキスト:

Sub RemoveProtection() 

Dim strPassword As String 
strPassword = InputBox("Enter document password.") 
ActiveDocument.Unprotect Password:=strPassword 
If ActiveDocument.ProtectionType = wdNoProtection Then 
    ActiveDocument.ActiveWindow.View.ShowHiddenText = True 
End If 

End Sub 

すべてのVBAコードを入力すると、IDEでモジュールを右クリックしプロジェクトのプロパティを選択し、[保護]タブで別のパスワードを割り当てます。これにより、パワーユーザーは埋め込みパスワードを取得したり、コードを変更したりすることがなくなります。

これで済むのは、WordでQATボタンを作成して(このドキュメントでのみ表示される)、RemoveProtectionサブを割り当てることです。文書が開かれるたびに、パスワードは隠され、編集から保護されますが、QATボタンをクリックして正しいパスワードを入力することで明らかになります。

EDIT私が最初にこの質問に答え

は、私はその言葉がすべて表示オプションからseparateleyオンにすることができます隠しテキストオプションを持って考えることができませんでした。さらに、隠し文字を印刷オプションで印刷することもできます。上記のAddProtectionにコードを追加して、これらの設定を無効にしました。手動ですべてのフォーマットマークにまたは隠しテキストオプションを表示を変更することで、隠されたテキストを明らかに表示 |オプション|

さらなる試験はまた、Word 2007のユーザーは手動でオフィスオーブに行くことができることを明らかにしました。これを避けるには、リボンのカスタマイズを作成してドキュメントにロードする必要があります。

最後に、このようなタスクを達成するためにWordを自分の意志に曲げるのは楽しいことですが、保護のレベルはパスワードを別々に暗号化してから明らかにする前に解読するほど良くはありませんWordの文書パスワード機能を使用して文書の全内容を暗号化することもできます。

関連する問題