• ベストアンサー

エクセルで有効期限をつけるマクロ

いつもお世話になっています。 マクロはいまだに理解できません。(笑) 過去の質問で検索してありましたができませんでした。 「エクセルの学校」でも検索しましたが理科気できませんでした。 一番よいのは 1.一週間で全部真っ白になる ですが、 無理なら 2.○月○日で有効期限が切れる。計算ができなくなるです。  保護が解除できなくなるでもよいです。 マクロのまったくできないと考えてください。念のためVBAの開き方からお願いいたします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

> 元はハイパーリンクと自動計算の組み合わせです。その部分がマクロを使っていないと意味がないのでしょうか? それは無関係です。 あと、考えられるのはVBAの記載場所ですね。 ひょっとして標準モジュールに書いてませんか?そうであれば ThisWorkbookのモジュールに移動させるか、 標準モジュールのままで、マクロの名前を Private Sub Auto_Open() に変えてみてください。

kirara3970
質問者

お礼

何度も回答ありがとうございます。 >ThisWorkbookのモジュールに移動させるか、 この方法でできました。 マクロ効果的に使うことができたのは初めてです。 完全にまっしろになりました。 本当にありがとうございました。

その他の回答 (4)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

No2-3です。 > =TODAY()の部分は4月25日になっていました。 ということはパソコンの内蔵時計を明日に進めたということですか? 確認ですが、 If Date >= "2006/04/24" Then は、このように一桁の月や日に04と頭に0をつけましたか? > 開けます。 もちろんファイルは開けますよ。セルの中身をデリート(削除)するだけですから。

kirara3970
質問者

お礼

何度も回答ありがとうございます。 マクロはまったくの初心者でとんちんかんなことを聞いていると思います。 回答の部分をコピーして貼り付けていますので写し間違いはないはずです。 期限で実際に切れるかどうか確認のために日付を変更しています。 初歩的なことですが、元はハイパーリンクと自動計算の組み合わせです。その部分がマクロを使っていないと意味がないのでしょうか? ものすごく初歩的な勘違いだったかもしれません。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

No2です。 > 日付を2006/4/23にしましたが、開けました。 この意味を取り違えていたようです。 VBAの記述を If Date >= "2006/4/23" Then にしたということですね? そうであれば、If Date >= "2006/04/23" Then にすればOKです。 ただ、これではシートが複数の場合、アクティブじゃないシートはそのまま残ります。以下のようにすれば、全シートが空白になります。 Private Sub Workbook_Open() Dim sh As Worksheet If Date >= "2006/04/24" Then For Each sh In Worksheets sh.Cells.Delete Next End If End Sub

kirara3970
質問者

お礼

何度も回答ありがとうございます。 計算機能の入っているシートのコードに入れて見ましたが 開けます。 夜に再度挑戦します。

kirara3970
質問者

補足

=TODAY()の部分は4月25日になっていました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

> 日付を2006/4/23にしましたが、開けました。 4/24以降、アクティヴなシートのセルを消すVBAですから、23日なら作動しないでしょね。 それから、 × If Date >= "2006/4/24" Then ○ If Date >= "2006/04/24" Then と直さないと、24日以降もだめですね、多分。

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

Sheet1のタブを右クリックしてコードの表示を選択します。 左上のプロジェクトウィンドウのThinworkbookをダブルクリックして右のコードをウィンドウに下記コードを貼付けます。 日付は、適当に変えて下さい。 Private Sub Workbook_Open() If Date >= "2006/4/24" Then Cells.Delete End If End Sub あとは、表示からMicrosoftExcelを選択します。 ファイル名を付けて保存して閉じます。 そのファイルを開いた時に上記のコードが実行されます。

kirara3970
質問者

お礼

深夜に回答していただきありがとうございます。 試して見ます。

kirara3970
質問者

補足

日付を2006/4/23にしましたが、開けました。 マクロは有効にしてあります。 パソコンの時計も間違っていませんでした。 何が原因でしょう?

関連するQ&A