- ベストアンサー
VBAマクロ
マクロボタンをクリックしてマクロを実行する事において、 マクロの実行が1年に1回だけしか有効に実行されないようにする為には どのような記述をすれば良いでしようか。 2回目以降のクリックにおいては既に実行されている旨の表示が必要です。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
私の回答が悪かったのですが、質問の内容が変わってしまいましたね。 Range("a1").Value = Format(Date, "yyyy/m/d クリックしました。") または Range("a1").Value = Format(Date, "yyyy/mm/dd クリックしました。") のようにすれば、2002/ と表示されます。 m/d,mm/dd は 2月や3日のように1桁の場合、02や03のように前0を付けるか付けないかです。 ★range("a1").value="=today()" はいりません。 --------------------------------------------------------------- --------------------------------------------------------------- ・・・ではなくて、 Sub test() With Range("A1") If (.Value = "" Or .Value < DateSerial(Year(Date), 1, 1)) Then 'システム日付の年の1月1日より以前ならば '1年に1度の処理 'ここに記入 .Value = Date 'システム日付をA1セルにセット Else MsgBox "1年に1度しか処理できません" End If End With End Sub として、A1セルの書式を ユーザー設定で[yyyy/m/d "クリックしました"] のようにしたらどうでしょう?という事です。
その他の回答 (2)
- taisuke555
- ベストアンサー率55% (132/236)
もう1つの質問は、ここから来ているのでしょうか? 比較をしたい場合は、値が日付のみ入っている方が、比較しやすいと思いますので、 Range("a1").Value = Date のみマクロで記述し、 A1セルの書式を ユーザー設定で[yyyy/m/d "クリックしました"] のように見た目だけ変更した方が楽かもしれません。 =Today()を入れてしまうと、ブックを開くたびに、日付が変更されてしまうので、 Dateの方がよいかと思います。
補足
有り難うございます、もう1つの質問の件ですが、 range("a1").value="=today()" range("a1").value= date & "クリックしました。" で 西暦が 02/ と二桁で表示されます、2002/ と4桁で表示出来るようにされるでしょうか。
- taknt
- ベストアンサー率19% (1556/7783)
過去にいつ実行されたのかをファイルかレジストリ、もしくはセル上に年月日時分をもたせ、それと比較したらいいと思いますよ。
お礼
有り難うございました、大変助かりました。