• ベストアンサー

エクセルマクロについておしえてください

マクロ1 を実行すると、そのマクロを実行した日時を任意のセルに表し、そのマクロを何度実行しても任意のセルの日時は初回実行日時から変わらない。ただし、マクロ2 を実行すると任意のセルの日時が消される・・・そんなマクロは作成可能でしょうか?

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

  • ベストアンサー
  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.1

マクロ1 指定セルが空白であれば日付を挿入。 又はIsdate関数でセルデータが日付データであるか確認する事も可能。 セルが空欄 if range("A1")="" then range("a1")=date 日付データが無い if isdate(range("A1"))=false then range("a1")=date マクロ2 上記データを空白にすれば良いだけ isdate関数 http://officetanaka.net/excel/vba/function/IsDate.htm

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

質問者は、マクロのモジュールなどしか頭にないのだろうが、モジュールの実行回数や実行日を管理(どこかへ記録や、記録してくれる仕組み)するのは(プログラムを組むことなど)難しいと思う(特にVBAをマクロと言っているレベルでは)。変数に類したものが使えるには、その回を実行している間だけ。(これは基本的なこと。) 仕組み(ソフトによっては)としては最後(終)更新日などを、仕組みとして覚えていてくれる仕組みは、とりいれられているが。 だからモジュールを離れて、(1)エクセルのシート(つまるところ、ブック=つき詰めるとディスクファイル)や、(2)このためだけのテキストファイルを質問者がVBAで作って、実行したサインや日付をそのファイルに書き出して、記録して、後日に残して、それを頼りにマクロ1(を実行する都度、そのファイルを読みだして判断する)でその判断や記録を扱うしかない。 テキストファイルに残す発想は、あまり、はやらないと思うのでエクセルの(質問者のいう)「任意のセル」が空白(または日付け。IsDateで判断”)かどうかで判断することになろう。 ーー もう少し広い見地から問題を考える方に意識を持ってゆくこと。

関連するQ&A