■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#45100-0数値変数からDATE型の変換方法モモ2001-07-18(水) 02:33
     #45101-0RE#45100:数値変数からDATE型の変換方法匿名451012001-07-18(水) 03:39
     #45102-0RE#45101:数値変数からDATE型の変換方法あき☆彡2001-07-18(水) 05:18
     #45103-0RE#45100:数値変数からDATE型の変換方法匿名451032001-07-18(水) 09:30
     #45112-0RE#45100:数値変数からDATE型の変換方法モモ2001-07-18(水) 12:29
#45100-0
数値変数からDATE型の変換方法
素人の質問ですみません。。。
実は、今、画面で年月日を入力したら、
その年月日を元に、曜日を取得しようと試みています。
WEEKDAY関数を使うまでは見つけたんですが、
引数がDATE型で渡すとなっていました。
画面で入力した内容は数値なので、
数値→DATE型に変換しようと試みてはや5時間・・・
精も根もつきはててしまいました・・・
こんな素人に、ぜひ、愛の手をさしのべて頂けないでしょうか・・・
#45101-0
RE#45100:数値変数からDATE型の変換方法
> 素人の質問ですみません。。。
> 実は、今、画面で年月日を入力したら、
> その年月日を元に、曜日を取得しようと試みています。
> WEEKDAY関数を使うまでは見つけたんですが、
> 引数がDATE型で渡すとなっていました。
> 画面で入力した内容は数値なので、
> 数値→DATE型に変換しようと試みてはや5時間・・・
> 精も根もつきはててしまいました・・・
> こんな素人に、ぜひ、愛の手をさしのべて頂けないでしょうか・・・

5時間はスゴイ・・・・

ではでは、そのがんばりにお答えしましょう。
まず、Date型に変換する命令は「 CDate 」です。
但し、変換元の値が数値(日付なので当然Long値でしょう→20010717みたいに)なので
そのまま変換するとオーバーフロー起こします。また、画面からの入力となれば
元々、文字型(String型)のはずなのでこれをこのまま使いましょう。

例:

    Dim Hizuke          As String    '文字型
    Dim Hiz             As Date      '日付型

    'Text1ボックスに日付が入力されたとして
    Hizuke = Trim$(Text1.Text)

    If IsDate(Hizuke) Then                         '日付チェック
        Hiz = CDate(Hizuke)                        '日付型に変換
    Else
        MsgBox "指定された日付が不正です!!"
    EndIf

で宜しいかと思いますよ。(未確認ですが)
#45102-0
RE#45101:数値変数からDATE型の変換方法
> > 実は、今、画面で年月日を入力したら、
> > その年月日を元に、曜日を取得しようと試みています。
> > WEEKDAY関数を使うまでは見つけたんですが、
> > 引数がDATE型で渡すとなっていました。
> > 画面で入力した内容は数値なので、
> > 数値→DATE型に変換しようと試みてはや5時間・・・
> > 精も根もつきはててしまいました・・・
> > こんな素人に、ぜひ、愛の手をさしのべて頂けないでしょうか・・・
”画面で入力した内容は数値”と書かれてあるので、
きっと"20010513"などの数字を入力し、その曜日を求めたいのですよね?
(数値と書かれてあると画面から入力された値を
  数値型に1度変換してるのかな?と思ってしまいます。)

> 例:
>     'Text1ボックスに日付が入力されたとして
>     Hizuke = Trim$(Text1.Text)
> 
>     If IsDate(Hizuke) Then                         '日付チェック
画面から入力された値が"2001/05/13"なら良いのですが、
"20010513"と入力した場合、Falseになってしまいます。(×_×;)

"20010513"を"2001/05/13"や"2001-05-13"などの
日付と認識できる形に編集する必要があります。

Weekdayは曜日を表す整数が求まるので、
曜日によって処理をわける場合はWeekdayで良いと思いますが、
もし画面上などに曜日を表示するだけならFormat$でも良いと思います。
表示書式指定文字
ddd :英語省略形   (Sun 〜 Sat)。 
aaa :日本語省略形 (日〜土)。 
dddd:英語         (Sunday 〜 Saturday)。 
aaaa:日本語       (日曜日〜土曜日)。 

【例】
Private Sub Command1_Click()
    Dim s_Wk        As String
           
    If Len(Text1.Text) = 8 Then
        s_Wk = Format$(Text1.Text, "####/##/##")
    Else
        s_Wk = Text1.Text
    End If
    If Not IsDate(s_Wk) Then
        Call MsgBox("( ̄□ ̄;)!!", vbExclamation)
        Exit Sub
    End If
    Call MsgBox(Format$(CDate(s_Wk), "aaaa"), vbInformation)
End Sub

それでは、頑張ってください。
#45103-0
RE#45100:数値変数からDATE型の変換方法
> 数値→DATE型に変換しようと試みてはや5時間・・・
> 精も根もつきはててしまいました・・・
> こんな素人に、ぜひ、愛の手をさしのべて頂けないでしょうか・・・

5時間ですか・・・。お疲れ様です。

私も開発の際、日付をLong型とDate型の両方を使用している事ってよくあります。
Logn型だと8桁ですね。(20010718) 仕様によって 4桁とか6桁とかあると思いますけど・・・・。
別の方も書いておられるますが、Date型に変更するには CDate関数をつかいます。
が、CDate関数の引数にするにはLong型の日付を
String型で "2001/07/18" のようにしないといけません。

で、私が言いたいのはこの変換はこれから何度も利用する事になると思います。当然、別の開発の時に。
ですので、Long型の日付をString型に変換する関数を作成してると再利用できるので便利ですよ。

5時間やった事は無駄にならないと思います。がんばってください。

#45112-0
RE#45100:数値変数からDATE型の変換方法
あきさん、そして、匿名の皆様方、
早速のご返事、感謝感激です!!
さっそくやってみます!!
この掲示板の皆様って、
本当に優しくて、すばらしい技術を持った人が多いですねっ。
これからも質問させて頂くかもしれませんが、
よろしくお願い致します。

本当にありがとうございました!!!
このページと関連する記事:
#17082-0Format関数について2001-07-31(火) 18:54
#11203-0Format関数について2000-09-07(木) 18:28
#14633-0カレンダーを自分で作るには?2001-02-21(水) 12:52
#8642-0日付関数での変数2000-06-07(水) 13:03
#55-3フォーマット関数について教えてください2003-11-05(水) 20:41
#10660-0Date(時間)のインクリメント2000-05-17(水) 14:04
#18812-0グリニッジ標準時を Format 関数で表示形式を整える2000-03-29(水) 21:30
#6813-0時間の計算。2000-03-21(火) 17:31
#27408-0週を表示する方法2002-03-08(金) 16:22
#11399-1時間の計算2000-06-08(木) 15:14
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)