プロが教える店舗&オフィスのセキュリティ対策術

EXCELで日付をVBAで自動更新をしたいです。


具体的に説明致しますと、ファイルを開くたびにA列に隔週と記入してある場合に、B列のセルを参照して、日付が昨日以前なら2週間後に日付を更新するといったものです。

例えば添付した画像の場合、ファイルを開いた日にちが2020/11/2だとしたら、A2は2020/11/1なので2週間後の2020/11/15といった具合です。
また、B5のようにB列の日付は隔週でないものも含まれます。

数が少なければ最悪手作業でも構わないのですが、場合によってはそれなりの数になるのでVBAで自動化したいと思ってます。

皆様の知恵をお貸しください。

「EXCELで日付をVBAで自動更新をした」の質問画像

A 回答 (3件)

No1です。



>これを入力するのはデータベース的な扱いをしているSheetでして…
関数を使いたくない理由としてはもっともですが、そもそも、データベースに「今日の日付に依存する値」を毎日(?)記入しようと考えることがナンセンスではないでしょうか?

日付がそこにしか存在しないデータなら未だしも、簡単に他の値から算出可能な「日付依存のデータ」を書き換えて廻るような処理に意味があるとは思えません。
とは言っても、どうせ「シート」のデータベースなのだから、関数を入れたところで何ら問題はないようにも思われます。
    • good
    • 0
この回答へのお礼

関数を入れると問題が起こるのでVBAでの処理をしたいわけです。
そうでなければわざわざこのような質問はしません。

お礼日時:2020/12/01 00:29

>B列に関数を入力していない状態で可能ですか?



B列にIF関数とtoday関数を使用した計算式が必要ですね。
でも関数を使用できる場合はVBAは使用しない方が良いですよ。

作成も面倒ですが、保守も面倒です。
行や列を増やしたりするだけでもVBAのソースを修正しなければなりません。

担当が変わっても変更の依頼はVBAの作成者にきます。
つくった人間が修正するのが当たり前と多くの人は思っていますよ。
    • good
    • 0
この回答へのお礼

ありがとうございます。
やはりB列に関数を入力するって意味ですよね。
それができれば話が早いのですが、これを入力するのはデータベース的な扱いをしているSheetでして…

お礼日時:2020/11/28 11:25

こんばんは



VBAを使わなくともTODAY関数を利用すれば、通常のシート関数でも自動処理が可能ですけれど・・・?

どうしてもVBAでなさりたいなら、ご説明の手順そのままの処理をすれば良いでしょう。
ただし、自動処理にするためにはWorkbookOpenなどのイベント処理として記述しておく必要があります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
VBAを使わずに可能とのことですが、それはB列に関数を入力していない状態で可能ですか?

お礼日時:2020/11/28 00:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています