Excel VBAで日付を入力し、保存する際に日付を1日前または1日後にする方法を教えてください。具体的には、以下のコードの中で何を変更すればよいですか? “`VBA d = Format(Day(Date), “00”) “`

このコードは、現在の日付から日付部分を取得し、2桁の文字列形式で変数 `d` に格納しています。日付を1日前または1日後にするためには、`DateAdd` 関数を使用する方法があります。以下に具体的なコードを示します。

“`VBA
d = Format(DateAdd(“d”, -1, Date), “dd”) ‘ 1日前の日付
“`
上記のコードでは、`DateAdd(“d”, -1, Date)` を使って現在の日付から1日前の日付を計算し、それを `Format()` 関数を使って2桁の文字列形式に変換しています。同様に、1日後の日付にする場合は `DateAdd(“d”, 1, Date)` となります。

ただし、このコードでは日付の書式が “dd” のため、1桁の日付がある場合は先頭に 0 がつくようになります。例えば、1日の場合は “01” となります。もし1日の書式を “1” のようにしたい場合は、`Format()` 関数を使わずに以下のように書くこともできます。

“`VBA
d = Day(DateAdd(“d”, -1, Date)) ‘ 1日前の日付
“`

どちらのコードでも、現在の日付を基準にして1日前または1日後の日付を計算できます。

コメントを残す