office  ファイルを期限付きにしたい
 


  
要VBA
TOPExcel/Word/PowerPoint
○ポイントは文書保護
VBAを使って、あらかじめ決められた日を過ぎるとファイルが開けなくなるようにすることはできません。これは、当然ですがVBAがファイルを開かなければ動かないからです。 そこで、ファイルが開かれた直後のタイミングで、日付の比較を行い、期限を過ぎていれば操作できなくする方法を使います。

しかし、まだ落とし穴があります。それは、マクロが無効にされた時です。これに対処するため、文書保護を使います。この保護をマクロで解除するわけです。そうすれば、マクロ無効の場合にも文書保護で編集が無効になるため、結果的に期限付きファイルになるわけです。

(1) メニューバーで右クリック>[コントロールツールボックス]にチェック

(2) コントロールツールボックス(図1)からテキストボックスコントロールを選択
office
(図1)コントロールツールボックスメニュー

(3) コントロールツールボックス(図1)からラベルコントロールを選択

(4) (2)で配置したテキストボックスに日付を入力(図2)
office
(図2)メッセージ入力例

(5) (3)で配置したラベルに下記のメッセージを入力(図2)
  「メッセージ:マクロを有効にしてくださいマクロを有効にしなければ、この文書を編集出来ません」

(6) [ツール(T)]>[文書の保護(P)]

(7) 文書保護ダイアログ(図3)の「フォームフィールド(F)」にチェック
office
(図3)文書保護ダイアログ

(8) 文書保護ダイアログ(図3)の「パスワード(P)」に xxx と入力して[OK]

(9) 「パスワード確認」ダイアログで再入力後[OK]

(10) VBEを開いてThisDocumentのコードウインドウを開く

(11) Document_Openイベントプロシージャのコード例は下記

ここからVBEプロジェクトの保護手順ですが、EXCEL VBAと同じ方法です。EXCEL版のダイアログを参照してください。

(12) VBEのプロジェクトエクスプローラで現在開いているプロジェクトを右クリック[VBAProjectのプロパティ]>「保護」タブ

(13) VBAProjectのプロパティダイアログ表示

(14) 「プロジェクトを表示用にロックする(V)」にチェック

(15) 「パスワード(P)」にパスワード入力

(16) 「パスワードの確認入力(C)」にパスワード再入力後[OK]

(17) VBEを閉じてファイルを保存終了

○こんな時に使える
・簡単なシェアウェアを作りたい
・期限を守らせたい
・期限移行の編集を許可しない

○応用またはその他の方法
・期限が来たら自動的にページを削除する要vba

○注意
この機能はパソコンの時計を使うので、パソコンの時計を戻されたら使用可能になります。

VBAが扱える人にはコード内の文書保護のパスワードを読みとられてしまうので、VBAProjectのプロパティでマクロの保護を忘れないように。

文書保護はWindowsのシステムの中では比較的弱いものです。本当に重要な会社データや個人情報などは、専用機密ソフトなどを使って、パソコンや記録媒体ごとに保護を施すことをお勧めします。