• ベストアンサー

VBAで日付セル内の年度のみを変更したい

データを抽出し加工して使用したいのですが一部が 実際は2008が2009に置き換わってしまっているので    A      1 2009/08/17  2 2009/09/07 3 2009/10/20 200位まであり すべて2008年に直したいのです。 1つずつ打ち直す以外の方法を教えてください。

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

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

マクロ案です。 Sub test() Dim c As Range Dim r As Range If TypeName(Selection) <> "Range" Then Exit Sub Set r = Selection For Each c In r If IsDate(c.Value) = True Then c.Value = DateAdd("yyyy", -1, c.Value) End If Next End Sub 2009→2008では関係ないですが、 2008→2007のような閏年で 2008/2/29の一年前の場合は2007/2/28に置き換わります。

tasukoceo
質問者

お礼

一発で置き換わりました。大変勉強になりました。

その他の回答 (2)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

関数で別セルに表示する案です。 =DATE(YEAR(A1)-1,MONTH(A1),DAY(A1)) こちらも閏年の2/29の一年前は2/28になります。 式をコピーして形式を選択して貼付けで「値」で貼り付けなおすことが可能です。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

置き換えの機能ではダメでしたか? A列を選択して ツールバーの 編集=>置き換え で 検索する文字 2009 置き換える文字 2008 で 全てを置き換えます。

tasukoceo
質問者

お礼

書式のところで躓いてしまいましたが無事成功しました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう