• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WORDでセキュリティの変更をユーザーに促す方法)

WORDでセキュリティの変更をユーザーに促す方法

このQ&Aのポイント
  • マクロ入りのワードファイルを配布する際、セキュリティ設定が異なるPC環境において、ユーザーにセキュリティを変更してもらう方法について考えています。
  • セキュリティ「高」のユーザーには本文を非表示にしておき、セキュリティ設定を変更するための手続きの説明のみを表示します。
  • セキュリティ「中」のユーザーの場合は、非表示部分(本文)を表示し、セキュリティ変更の説明に関する文章を削除します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 おっしゃるとおりの内容になっているか分かりませんが、「文書の保護」自体をマクロで行うようにしてみました。 >PC環境によって、編集記号がONだったり、OFFだったりするので、非表示の目的としては使えないことが分かりました。 良く調べていらっしゃるようですね。以下のものは、マクロを起動したまま、ファイルを閉じると、メッセージを入れて、全文のフォントの「隠し文字」と「白」に変更され、ファイルが閉じられます。なぜか、確実性がいまひとつなのは、理由が良く分かりません。もう少し、マクロの挙動自体を細かく精査する必要がありそうです。一応、こちらで調べた範囲では、問題は発生していなかったのですが、何があるのか、分かりません。ベータ版として、試してみてください。 後、文書の保護のパスワードなどは、付け加えてください。 なお、本来、Wordのマクロは、フィールド側が中心だと思いますので、おそらく、ご質問者さんの文書自体は、もう少し複雑な構造になっているので、Protect とUnProtect の行き来する部分では、違うかもしれません。その時は、付け加えてください。 '------------------------------------------------ 'ThisDocument モジュールに書いてください。 Private Sub Document_Open() '開始時   Dim sText As String   Dim i As Integer   'Beep ''マクロ起動確認   On Error Resume Next   ThisDocument.Unprotect   On Error GoTo 0   Selection.HomeKey Unit:=wdStory   Selection.EndKey Unit:=wdStory, Extend:=wdExtend   With Selection.Font     .Hidden = False     .Color = wdColorAutomatic   End With   Selection.HomeKey Unit:=wdStory      For i = 1 To 3 '二重に書き入れたときのため   sText = ThisDocument.Paragraphs(i).Range.Text   If InStr(1, sText, "このドキュメントは、セキュリティを", 1) > 0 Then      ThisDocument.Paragraphs(i).Range.Delete   End If   Next i   ThisDocument.Protect wdAllowOnlyReading End Sub Private Sub Document_Close() '終了時   Dim sText As String   Dim nMSG As String   nMSG = "このドキュメントは、セキュリティを「高」にしてあると読めません。" & Chr(11) & _   "ツール-マクロ-セキュリティを「中」にして「終了」してください。再び、Wordを起動して、このファイルを開けてください。" & vbCrLf   On Error Resume Next   ThisDocument.Unprotect   On Error GoTo 0      Selection.HomeKey Unit:=wdStory   sText = ThisDocument.Paragraphs(1).Range.Text      If InStr(1, sText, "このドキュメントは、セキュリティを", 1) = 0 Then     Selection.InsertBefore Text:=nMSG     With Selection       .Font.Hidden = False       .Font.Color = wdColorAutomatic       .ParagraphFormat.Alignment = wdAlignParagraphLeft     End With   End If   Selection.Collapse wdCollapseEnd   Selection.EndKey Unit:=wdStory, Extend:=wdExtend   With Selection.Font     .Hidden = True     .Color = wdColorWhite   End With      ThisDocument.Protect wdAllowOnlyReading   ThisDocument.Save End Sub

bakan_yadan_2006
質問者

お礼

御礼が遅くなり、申し訳ありません。 にしても、すばらしい!すでにアンケートは配布してしまったのですが、同様の機会があったとき、ぜひ試して見ます。 ありがとうございました。

関連するQ&A