- 締切済み
VBAを使って日付を比べる
VBAで簡単な基準日を指定してそれに合わせた成績表をランキングにしたいと考えて作っていたのですが 基準日と参考日を見比べる時に参考日が上手く機能せず 最初の参考日から動かないままループしてしまいます。解決方法があれば教えて下さい。 ちなみに参考日、基準日はdata型の変数を宣言しています。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
質問文での問題の内容の説明が、何もなく、読者にとって、何も具体的なことがわからない。 こういう、相手(読者)のことを、思いやれない、想像力の不足こそ、質問者の最大の問題だと思う。 模擬実例をあげて、説明すべきと思う。ここで手抜きするなら、回答者のことを 想像すること。小生は、回答には、模擬実例をほとんど挙げているが、その例を作る手間の何とかかることか。 -- プログラムがうまく走らない問題は、プログラムコードそのもの+データ内容を 考えないと、いけないはず。 補足要求しても、よく会社のことで、現状を出したくない、とかいう言い訳が多いが、それならここに質問するのは、お門違いと思う。
- FEX2053
- ベストアンサー率37% (7991/21373)
日付シリアルのデータは、年月日時刻が、表示されていなくても 何らかの形で補填されて必ず設定されています。 ですので、日付のチェックは「変数を必ず明示的に年月日に置き 換えて確認」しないと、思っているのと結果が違ってくる可能性 がありますよ。 具体的には変数を(=MONTH(A1)*100+DAY(A1))のような整数に ワークシート上なりVBA内なりで変換すると、うまく行くのでは ないかと思います。
- kkkkkm
- ベストアンサー率66% (1735/2605)
> 最初の参考日から動かないままループ どのように参考日を加算もしくは減算しているのでしょう 加減算している次の行でブレークポイント設定してローカルウィンドウで変数の値を見てみるか次の行に Debug.Print 変数 このあとにブレークポイント設定 でイミディエイトウィンドウに値を表示してみましょう。 値が変化していなければ(またはある一定から加減されなくなる)加減算のしかたが間違っている可能性が大です。
- hiodraiu
- ベストアンサー率15% (451/2846)
> ちなみに参考日、基準日はdata型の変数を宣言しています。 Date型にしてみたら如何でしょう。 コードが書かれているわけでもなく、処理フローが書かれているわけでもない状況で、どういった回答を期待していますか? 一般的には、デバッグ機能を使い、各所で変数の値を確認したり、処理の流れを確認すれば、問題箇所が見えてくると思います。また、それ以前の話として、処理フローを何かしらのチャート(フローチャートは、お薦めしない)で、自分の思う処理の正しさを検証してみてはいかがですか。