• ベストアンサー

ExcelVBAを使った日付の求め方

ExcelVBAでの質問です。 セルA1に日付2005/07/25と入力されています。 セルB1にその一年後を求めた値を返したいのです。 通常では =DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)) の式で求める事が出来るのですが、VBAで書こうとするとエラーがでてしまいます。 どのようにすれば良いか教えてください。 ※VBAについては殆ど初心者の為、詳しく教えて頂けると有難いです。 宜しくお願いいたします。

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

  • ベストアンサー
  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.3

実行できない、というのはエラーが出るということでしょうか? それともそのコードを実行する方法がわからないということでしょうか? 前者でしたら間違いがないか良く見直してください。 後者でしたら、VBAのソースを実行するにはトリガ(例えばボタンを押す、など)が必要です(直に実行することもできますが)。 とりあえずシート上にボタンを貼り付けてみてください。 ツールバーに表示されていなかったらツールバー上で右クリックしフォームを選んでください。 その中にボタンというのがあるのでクリックしシート上に配置してください。 ドラッグすれば好きな大きさで配置されます。 そうすると「マクロの登録」という画面がでるのでそのまま新規作成をクリックしてください。 今度は Microsoft Visual Basic というのが立ち上がり、エディタの中にはこんな感じになっているはずです。 Sub ボタン4_Click() End Sub この中に先ほどのコードを記入してください。 こうなります。 Sub ボタン4_Click() Cells(1, 2) = DateAdd("yyyy", 1, Cells(1, 1)) End Sub 終わったらこの画面は閉じてよいです。 先ほどのシート上にあるボタンをクリックしてください。 実行されるはずです。

Dona1d
質問者

お礼

お礼が随分遅くなりまして申し訳ありません。 この質問をした直後に吐血し、胃潰瘍になって入院してしまっていました(-_-;) この問題は他の方が引き継ぎした模様。。。 ですが、先程ご回答頂いたコードを試した所、実行することができました。 今となってはなぜあの時実行できなかったのかが不明です(^_^;) 有難うございました。

その他の回答 (4)

  • sato-tya
  • ベストアンサー率36% (108/296)
回答No.5

回答ではないんですが TOP > コンピューター [家庭向け] > ソフトウェア > Office系ソフト で聞いた方がよろしいかと思うんですが・・・。

Dona1d
質問者

お礼

はい・・・確かに(^_^;) 以後気をつけます。 ご指摘有難うございました。

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

>VBAで書こうとするとエラーがでてしまいます プログラムのことを聞きながら、自分のコードを書かないのはおかしい。 Sub test01() y = Year(Range("a1")) MsgBox y m = Month(Range("a1")) MsgBox m d = Day(Range("a1")) MsgBox d d = DateSerial(y + 1, m, d) MsgBox d End Sub は答えが出たが、これではダメですか。 来年の同月応答日を出したもの。 MSGBOXは確認用。

Dona1d
質問者

お礼

ttyp03様同様お礼が遅くなってしまい申し訳ありません。 おっしゃる通り自分のコードを書くべきでした。 今後は気をつけたいと思います。 有難うございました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

vbaの場合は#1の方のDateaddで行うか =DateSerial(Year(Cells(1, 1))+1,MONTH(Cells(1, 1)),DAY(Cells(1, 1)))

Dona1d
質問者

補足

(>_<)エラーが出てしまいます。 根本的に私の知識が足りなさすぎですね・・・(/_;)

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.1

DateAddという関数があります。 Cells(1, 2) = DateAdd("yyyy", 1, Cells(1, 1))

Dona1d
質問者

補足

早速試してみたのですが、実行ができません。 私には高度すぎるようです(>_<)。。。

関連するQ&A

専門家に質問してみよう