Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


769 / 13645 ツリー ←次へ | 前へ→

【78422】日付時刻の入力判定 rao 16/9/18(日) 12:21 質問[未読]
【78424】Re:日付時刻の入力判定 γ 16/9/18(日) 14:52 発言[未読]
【78426】Re:日付時刻の入力判定 rao 16/9/18(日) 16:35 質問[未読]
【78427】Re:日付時刻の入力判定 γ 16/9/18(日) 21:55 発言[未読]
【78428】Re:日付時刻の入力判定 rao 16/9/18(日) 22:37 質問[未読]
【78429】Re:日付時刻の入力判定 γ 16/9/18(日) 23:55 発言[未読]
【78430】Re:日付時刻の入力判定 rao 16/9/19(月) 6:24 お礼[未読]
【78431】Re:日付時刻の入力判定 γ 16/9/19(月) 6:40 発言[未読]
【78432】Re:日付時刻の入力判定 rao 16/9/19(月) 8:16 お礼[未読]

【78422】日付時刻の入力判定
質問  rao  - 16/9/18(日) 12:21 -

引用なし
パスワード
   初めて質問します。

日付と時刻を入力する目的で、yyyy/mm/dd hh:mm:ss
の書式で設定されているセルがあります。
正しく入力されているかどうかvbaで判定したいのですが、
いい判定方法はありますか?
isdate、istimeを使うといいと思うのですが。

宜しくお願いします。

【78424】Re:日付時刻の入力判定
発言  γ  - 16/9/18(日) 14:52 -

引用なし
パスワード
   もう少し説明してください。

正しい入力とは何ですか?
・特定の範囲が定まっているのですか?
・それとも、文字が入っていない実数ならOKということですか?
後者ならIsNumeric関数で判断すればよいでしょう。

【78426】Re:日付時刻の入力判定
質問  rao  - 16/9/18(日) 16:35 -

引用なし
パスワード
   返信ありがとうございます。
説明不足ですいません。

打ち込み入力された年月日時分秒が
半角でyyyy/mm/ss半角空白hh:mm:ssの書式であり、
かつ日付時刻を示す数字であるか、判定したいのです。

たとえば
2016/9/1816:17:00  半角空白なし  や
2016/9/18 35:17:00 35時という時刻はない は
エラーにしたいのです。

isnumericですと、全角でもokになってしまいます。
まず全角を強制的に半角化し、strconv(cell(i.j),vbnarrow)
半角空白を探して、
空白前でisdate、空白後でistimeで
それぞれ判定するしかないのかなと思ったのですが。

もう少し賢い方法はないものかと思い、質問しました。
宜しくお願いします。

【78427】Re:日付時刻の入力判定
発言  γ  - 16/9/18(日) 21:55 -

引用なし
パスワード
   (1)
2016/9/1816:17:00  はIsNumericでFalseが返るし、
(2)
yyyy/mm/ss半角空白hh:mm:ssの書式のセルに
2016/9/18 35:17:00 を入力すると、は、
2016/9/19 11:17:00と自動変換されます。
(3)
全角を入れても気を利かせて半角になりませんか?

何をどのタイミングでチェックするのか。
そのあたりの内容をよく整理してください。

【78428】Re:日付時刻の入力判定
質問  rao  - 16/9/18(日) 22:37 -

引用なし
パスワード
   お返事ありがとうございます。

(1) 空白なしは、isnumericで回避できそうですね。
ありがとうございます。
(2)打ち込みミスなので自動変換されてokだされても困るのです。
自動変換させずに判定する方法はないでしょうか?
(3)他人から貰ったファイルで、
元は昔のエクセルで作ったのだとおもいます。
気を利かせる機能がうまく働かなかったようです。
新しいバージョンで一度全てクリアすると、
気を利かせてくれました。

宜しくお願いします。

【78429】Re:日付時刻の入力判定
発言  γ  - 16/9/18(日) 23:55 -

引用なし
パスワード
   >(2)打ち込みミスなので自動変換されてokだされても困るのです。
> 自動変換させずに判定する方法はないでしょうか?

そんなこと言われても私はマイクロソフトの人間じゃないから
自動変換の責任を取らされても困るんですよ。知らんよ、そんなこと。

いったん文字列書式のセルに入力させてから、
マクロで移すんじゃないですか?

でも、深夜残業などで、25時なんていうのを使う会社もありますよ。
それと、日にちと時間を一つのセルに入れるのは、話を難しくするだけだと思います。
実態を踏まえて、全体の構想を良く練ってください。

【78430】Re:日付時刻の入力判定
お礼  rao  - 16/9/19(月) 6:24 -

引用なし
パスワード
   確かに、日付と時刻を同じセルに入力するの、
前から面倒だと思っていました。
別セルに入力して、後で結合した方が、ラクですね。

ありがとうございました。

【78431】Re:日付時刻の入力判定
発言  γ  - 16/9/19(月) 6:40 -

引用なし
パスワード
   二つにわければ、35:00 といった入力は、
入力規則なり条件付き書式なりで警告を出せます。
それは所詮小数点以下を持つ数値なんだから、
1 以上だったらアウトにすればいい。

【78432】Re:日付時刻の入力判定
お礼  rao  - 16/9/19(月) 8:16 -

引用なし
パスワード
   ありがとうございました。

769 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free