[[20141023081610]] 『一部セルの値を削除』(tubure) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『一部セルの値を削除』(tubure)

 時間集計の為の表を作成しています。

 毎日、各自で時間を入力するのですが、C1に=TODAY()関数を入れて今日の日付を表示させています。

 しかし、前日に入力した値が残っているため、誰が今日の分でというのが分かりません。

 更に、入力忘れ防止も含めて下記のことがしたいのですが、関数およびマクロでできるのかご教示頂きたいのですが。

 ・C1に=TODAY()はそのまま
 ・次の日に最初に開いたときにC4:M13までの値をクリア(前日分の時間等)
 ・2回目以降に開いたときはクリアにはしないで値は残したまま

 以上、よろしくお願いいたします。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


 マクロで、ThisWorkbookモジュールに

 Private Sub Workbook_Open()

    If Format(Date, "yyyy/m/d") <> Split(ThisWorkbook.BuiltinDocumentProperties("Last save time").Value, " ")(0) Then
        Sheets("Sheet1").Range("C4:M13").ClearContents
    End If

 End Sub

 こんなことでどうでしょうか。
 シート名は適当に変更して下さい。
(天邪鬼) 2014/10/23(木) 12:06

 天邪鬼さん

 コード添付ありがとうございます。

 しかし、実行されませんでした。

 >・2回目以降に開いたときはクリアにはしないで値は残したまま

 というので、すでに開いていたからでしょうか???

 無知で申しわけありません。
(tubure) 2014/10/23(木) 13:22

 説明不足でした。

 1回目、2回目というチェックはしていません。
 このファイルはいつ保存されたものかを調べて、今日保存したものであれば、何もせず、
 今日以外(通常は前日まで)に保存したものであれば指定の範囲のデータをクリアします。

 したがって、いま作って保存して、再度開いても何も起こりません。
 あした開くとデータがクリアされます。

 テストするにはシステムの日付を変えてやって見て下さい。

(天邪鬼) 2014/10/23(木) 13:57


 天邪鬼さん

 説明ありがとうございます。

 日付を変えて実行したところ、

 Sheets("Sheet1").Range("C4:M13").ClearContents

 で、結合された一部を変更することはできません。とデバックになりました。

 シート名は確認したので("C4:M13")に問題があるのでしょうか??

(tubure) 2014/10/23(木) 14:50


 問題がありそうです。

 エラーメッセージから推察すると、 文字通り、C4:M13 の中に結合されたセルの一部があるのではないですか?
                                                                         ~~~~~
(天邪鬼) 2014/10/23(木) 15:23

 天邪鬼さん

 >文字通り、C4:M13 の中に結合されたセルの一部があるのではないですか?

 問題ありました。

 一度、結合部分を解除してやりなおしたところ、問題なく動きました。

 ありがとうございます。
(tubure) 2014/10/23(木) 15:56

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.