
初めて、利用します!!
テキストボックスに日付型のデータを入れたら、
指定した日付型のフォーマットに変換する関数を作ってます。
例えば、[20010101]と入力したら[2001/01/01]に変換!
それで、入力桁数によって・・・年月日をそれぞれ算出しようとしてました。
例えば、2桁入力時は[1桁目]を「月」[2桁目]を「日」という具合に!
そうしていくうち、5桁入力時に、年と月と日の判断をどうやったら良いのか
わからなくなってしまいました。
今、考えられるケースとしては [YYYYM][YYMMD][YYMDD]なのですが
判断の方法を教えてください。_(_^_)_
※Y:年 M:月 D:日
No.1ベストアンサー
- 回答日時:
>今、考えられるケースとしては [YYYYM][YYMMD][YYMDD]なのですが
そうですね。定まりませんね。
11111
と入力されたとき、
1年11月11日
11年11月1日
11年1月11日
111年1月1日
これは判断がつきません。
入力の書式が決まらないことには、プログラムで勝手に判断をつけるわけには行きません。
なので制限をつけるとか、MsgBoxを出して注意を促したり、Popupのフォームを出し、候補をリスト一覧に出し、ユーザー側に選択させるとかが必要になると思います。
なんにしても、この仕様では無理だと思います。(^^;)
ありがとうございます。<m(__)m>
やはりそうですよねぇ・・・
各年月日の間に[/]が入っていれば以下の要領で大丈夫なのですが・・・
If IsDate(変数) Then
変数 = Format(変数, "yyyy/mm/dd")
End If

No.5
- 回答日時:
(1)日付の入力桁は固定とし指定桁数以外の入力桁ははじく。
(2)IsDate関数を使用し日付値としての整合性チェックを行う。
(3)整合性が確認できれば任意のフォーマットに変換し出力。
でどう?
No.4
- 回答日時:
再度、田吾作7です。
>各年月日の間に[/]が入っていれば以下の要領で大丈夫なのですが・・・
そうですね[/]が入っていたら、日付の区切りが定まりますね。
しかし、[/]が存在しない要領では、法則がありません。
2つ以上のパターンが存在するならば、プログラムで勝手な判断をするわけにはいきません。
ユーザーの意思と反する結果を生む恐れがあるからです。
ユーザーの意思を反映させるためには
(1)ありえない法則はエラー
(2)ユーザーに問い合わす
という処理を行うべきだと思います。
No.3
- 回答日時:
こんにちは。
maruru01です。No.1の方の言う通り、桁数を自由にして自動的に判断というのは、限界があります。
したがって、年、月、日を別のテキストボックス(またはコンボボックス)で入力するか、8桁連続入力にして、文字数判定をする(+日付として無効かどうかの判定も)などにした方がよいと思います。
日付の入力程度のことに自由度を持たせても、プログラムが煩雑になるのでやめた方がいいと思います。
では。
ありがとうございました。_(._.)_
やはり桁数は固定で10桁、もしくは8桁固定が作る方としても楽です!
とにもかくにも、(ソフトとか別のOCXを使わずに)テキストボックスで
フォーマットが上手くできればいいのですがねぇ!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 過去日付、年の切り替え 6 2022/05/26 12:41
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) Excelシフト表 固定シフトの自動変換化 1 2022/04/14 16:10
- Excel(エクセル) エクセル 全自動シフト表の祝日シフト表示を消すには? 3 2022/04/23 16:43
- 会社・職場 Excel、Googleスプレッドシートなどへのデータ入力 2 2023/07/06 05:59
- Excel(エクセル) Excel ある複数列に数値を入力した際に、別の列に本日の日付を入力したいです 7 2023/03/01 23:31
- Excel(エクセル) Excelで作成しているシート(表) 5 2023/06/15 10:20
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseコンソール表示を、リセ...
-
数字以外が入力されたらエラー...
-
getchar()について 教えてくだ...
-
scanfが2回使えない・・・?;
-
正負を反転させて出力するプロ...
-
*をユーザーが入力した数字の数...
-
4桁の英字の3桁目を当てるプロ...
-
標準ライブラリ関数で入力する...
-
コマンドプロンプトからのEOFの...
-
C言語 While文(ループ)内の...
-
c言語の数当てゲームプログラム...
-
C言語 逆ピラミッドの作り方
-
Excel VBAで、Application.Inpu...
-
C言語 for文をつかって記号を表...
-
cin.get(c)について
-
C言語について
-
Userformの入力順序をタブオー...
-
4桁の数字以外を入力したらエラ...
-
至急教えてください!プログラ...
-
プログラミング初心者です。 Py...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
数字以外が入力されたらエラー...
-
Excel VBAで、Application.Inpu...
-
EDITコントロールで入力できる...
-
*をユーザーが入力した数字の数...
-
Linuxプログラミングで、キーボ...
-
Eclipseコンソール表示を、リセ...
-
入力候補を表示させるには・・・?
-
batプログラム上で文字列を入力...
-
UWSCで変数をキー入力
-
VisualStudio2019のコードアナ...
-
小数か整数かを判定する方法
-
scanfが2回使えない・・・?;
-
Linuxで入力待ちなしkeyread関...
-
java初心者です。入力されたの...
-
Delphi初心者 ボタン操作につ...
-
コマンドプロンプトからのEOFの...
-
Eclipseでコマンドラインを入力...
-
Userformの入力順序をタブオー...
おすすめ情報