• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで日付と時刻の計算に困っています)

VBAで日付と時刻の計算に困っています

このQ&Aのポイント
  • VBAを使用して日本の日付と時刻を欧州の日付と時刻に変換するマクロを作成したいです。
  • 日本の日付と時刻が入力されているセルを選択し、マクロを実行することで欧州の日付と時刻に変更します。
  • 時差である9時間を減算して、日付と時刻を変更する方法を教えてください。

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

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

一例ですが Range("A1").Value = Range("A1").Value - 9 / 24 といった簡単な方法もあります。 エクセルでは 数値の 1 を1日(24時間)の単位で計算していますので 9/24 が 9時間という事になります。 そのまま 引き算すれば、日付をまたいだ場合は前の日になりました。

angelwings
質問者

お礼

そのような仕組みになっているとは知りませんでした。 いろいろな所で応用が利きそうな考え方ですね! 教えていただきありがとうございます。 何が問題だったのかわからないのですが、前日にはエラーと表示されていたのに、 翌日に実行してみたら何の問題もなく動きました。 お騒がせしてしまい大変申し訳ありません。 ご丁寧にご回答いただきありがとうございました。

その他の回答 (2)

noname#194317
noname#194317
回答No.2

ついでにマクロじゃなくて、以下のようにセルに値を入れて計算させても、No1回答者さんと同じ結果になりましたよ。なので私も、日付が変わらないのは何かがおかしいとしか思えないです。 セルA1 2011/6/12 6:00:00 セルA2 9:00:00 セルA3 =A1-A2(結果:2011/6/11 21:00:00)

angelwings
質問者

お礼

型が違うセル同士でも計算が正しくできるのですね。 とても勉強になりました! ありがとうございます。 何が問題だったのかわからないのですが、前日にはエラーと表示されていたのに、 翌日に実行してみたら何の問題もなく動きました。 お騒がせしてしまい大変申し訳ありません。 ご丁寧にご回答いただきありがとうございました。

  • papope
  • ベストアンサー率33% (8/24)
回答No.1

こんにちは。 EXCEL2007で試しましたがDateAdd("h",-9,Sheet1.Cells(y,x)) でちゃんと前日になりましたが? どこかが、おかしいのだと思うのですが。 以上、ご参考まで。

angelwings
質問者

お礼

何が問題だったのかわからないのですが、前日にはエラーと表示されていたのに、 翌日に実行してみたら何の問題もなく動きました。 お騒がせしてしまい大変申し訳ありません。 ご丁寧にご回答いただきありがとうございました。

関連するQ&A