- ベストアンサー
エクセルファイルの使用期限の設定について
こんにちわ。 VBAを現在、勉強中です。 エクセルのVBAを使ってファイルに使用期限を設定できるのでしょうか? 出来れば設定日付以降は開かないようにしたいのですが、どうでしょうか? そうした場合、パソコンの日付を変更するとやはり開いてしまうのでしょうか? 皆様のお力をぜひお貸し頂ければ幸いです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>レジストリに書き込んで の操作では、コードの書き方によりますが ファイル名を変更しても、同じレジストリの値を読み込むようにすれば、期限切れで開くことが出来なくすることも可能ですね。 また、異なるパソコンで期限切れとなったファイルを開くことが出来なくするには、ファイルにその情報を残すことで、可能となるでしょう。 問題は、レジストリに どの様な情報を書き込むかです。 ファイル名は、一切キーワードとして使用しないで 作者しか わからない、固定のキーワードを設定出来るように考えることですね。 ロジック的には、 ファイルに、期限切れとなった情報が有るか否かを調査。 この、情報が、ないときは、ファイル(隠しシート)にキーワードを書き込む。 そして、さらにレジストリに値を書きこむ。 ついに、期限切れとなったら ファイル(隠しシート)とレジストリの値を、期限切れの値に変更する。 とすれば、可能かと思いますが。
その他の回答 (2)
- Nayuta_X
- ベストアンサー率46% (240/511)
エクセルのVBAを使ってファイルに使用期限を設定できるのでしょうか? 回答: マクロを有効にすれば、出来ます。 隠しシートを作成して、そこ(セル)に キーワードを入れ・・・ ファイルを閉じた時に、使用期限を設定してしまう。とか・・・ 出来れば設定日付以降は開かないようにしたいのですが、どうでしょうか? 回答: マクロを有効にすれば、出来ます。 BOOKにPasswordを設定するとか、シートにPasswordを設定するとか・・・ そうした場合、パソコンの日付を変更するとやはり開いてしまうのでしょうか? 回答: マクロを有効にすれば、プログラムの書きようでいかようにもなります。 マクロを無効にすれば、簡単に開かれてしまいます。 期限が、来たらPasswordの入力を要求するとか・・・
- redfox63
- ベストアンサー率71% (1325/1856)
単体のパソコンだけならその日付設定を変えられてしまえば起動してしまうでしょう Excelのマクロ Auto_OpenやThisWorkbookのOpenイベントなどで if Date > CDate( "2008/7/3" ) then Application.DiaplayAlerts = false Application.Quit ThisWorkbook.Close end if といった具合で対処可能でしょう これでも マクロの使用を禁止されてしまっているExcelではファイルは開かれますよ
補足
早速、ご回答ありがとうございます。 ネット検索で思っているような事が出来そうなものを見つけました。 レジストリに書き込んでその経過日数を経過すると開かなくなる事ですが、単純パソコンを複数台持っていれば開ける事が可能のような気がするのですが、それと、ファイル名を変更した場合はどうでしょうか? 無知ですみませんが教えて頂ければ有難いです。 もう一つ、Aファイルにこの設定をし、その二日後にBファイルを作成し同じ設定をした時にAファイルは、7日後開かなくなりますがBファイルはきちんと7日後にファイルを開かなくなるのでしょうか? Bファイルは5日後に開かなくなりそうな気がしたもので。 勉強不足でお門違いな事を言っているかもしれませんが宜しくお願いします。 Sub test() Dim t As String Dim dt As Date t = GetSetting("TestApp", "TestSection", "WindowX") If t = "" Then ' レジストリ値がない。初めて実行されたと認識し、今日の日付をセット t = Format(CLng(Now())) SaveSetting "TestApp", "TestSection", "WindowX", t ' ダミーのランダム値をセット SaveSetting "TestApp", "TestSection", "WindowY", Right$(Str(CDbl(Now())), 5) End If dt = CLng(t) If Now() > dt + 7 Then ' 初めて実行された日から7日以上経っている MsgBox "試用期間が過ぎました" Exit Sub End If ThisWorkbook.Saved = True ' 本ブックをClose ThisWorkbook.Close False ' 他にブックが開いていなければ、Excelを終了する If Workbooks.Count <= 1 Then Application.Quit MsgBox "試用プログラム" End Sub