C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: 文字列型の時刻を日付型へ変換ができない


(過去ログ 122 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■72912 / inTopicNo.1)  文字列型の時刻を日付型へ変換ができない
  
□投稿者/ nkane (1回)-(2014/08/01(Fri) 11:50:04)

分類:[VB.NET/VB2005 以降] 

VisualStudio Express 2013 for Windows DesktopにてVBのアプリケーションを作ろうとしています。

テキストボックスに開始時間と終了時間を入力して、何分経過しているかの計算をする箇所で、
終了時間を00:00と入力した場合、24:00に変換する処理がうまくできません。

時間の入力は開始時間の時刻をtxtStartHour1、分をtxtStartMinutes1、終了時間の時刻をtxtEndHour1、
分をtxtEndMinutes1としています。
(DateTimePickerでは時刻から分へのカーソル移動がtabキーでできなかったため、上記の方法を採用しました)

以下、該当のソースです。

            '開始時間と終了時間の値を取得
            Dim starttime1, endtime1 As DateTime

            starttime1 = txtStartHour1.Text.ToString() & ":" & txtStartMinutes1.Text.ToString()
            endtime1 = txtEndHour1.Text.ToString() & ":" & txtEndMinutes1.Text.ToString()
            If endtime1 = "00:00" Then
                endtime1 = DateTime.Parse("24:00")
            End If

            '終了時間と開始時間の差を計算
            Dim jikan As TimeSpan
            jikan = endtime1.Subtract(starttime1)

            '時刻の差がマイナスの値の場合
            If jikan.TotalMinutes < 0 Then

                MsgBox("終了時間が開始時間より過去になっています。" & vbCrLf & "時刻の修正をしてください。", vbCritical)
                txtStartHour1.Focus()

            End If

上記を実行すると、

「型 'System.FormatException' のハンドルされていない例外が mscorlib.dll で発生しました

追加情報:文字列で表される DateTime がカレンダー System.Globalization.GregorianCalendar でサポートされていません。」

とエラーが表示されます。
おそらく、「endtime1 = DateTime.Parse("24:00")」の箇所が原因なのだろうと思います。
いろいろ調べてみましたが、どのようなコードが適切なのかわからなかったので、ご教示よろしくお願いいたします。

引用返信 編集キー/
■72921 / inTopicNo.2)  Re[1]: 文字列型の時刻を日付型へ変換ができない
□投稿者/ 魔界の仮面弁士 (64回)-(2014/08/01(Fri) 14:29:44)
No72912 (nkane さん) に返信
> 終了時間を00:00と入力した場合、24:00に変換する処理がうまくできません。

仕様が良く分からないのですが、「深夜22時から明朝5時まで」の場合は、
 TextBox1.Text = "22:00"
 TextBox2.Text = "05:00"
と入力することになるのでしょうか。それとも
 TextBox1.Text = "22:00"
 TextBox2.Text = "26:00"
と入力する事になるのでしょうか。あるいはそもそも入力できない?


提示のコードを見ると、午前1時台については
 TextBox1.Text = "01:00" : TextBox2.Text = "01:00" '経過時間= 0時間0分
 TextBox1.Text = "01:00" : TextBox2.Text = "01:01" '経過時間= 0時間1分
 TextBox1.Text = "01:01" : TextBox2.Text = "01:01" '経過時間= 0時間0分
 TextBox1.Text = "01:01" : TextBox2.Text = "01:00" 'エラー 「過去日付」
になるのに対して、深夜12時台の場合は
 TextBox1.Text = "00:00" : TextBox2.Text = "00:00" '経過時間= 0時間0分ではなく24時間0分
 TextBox1.Text = "00:00" : TextBox2.Text = "00:01" '経過時間= 0時間1分
 TextBox1.Text = "00:01" : TextBox2.Text = "00:01" '経過時間= 0時間0分
 TextBox1.Text = "00:01" : TextBox2.Text = "00:00" 'エラー 「過去日付」ではなく23時間59分
となることを期待しているように読取れました。

ということは、終了時刻が 00:01 の場合、開始時刻として許可されるのは
"00:00" か "00:01" だけとなるのかな…。


> 終了時間を00:00と入力した場合、24:00に変換する処理がうまくできません。

仕様を正しく読取れているかどうか、自信が無いのですが、
『日付部』を扱わずに、時間間隔を計算したいのであれば、
「時刻(DateTime)」ではなく、「時間(TimeSpan)」として保持しては如何でしょう。


Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim cul = System.Globalization.CultureInfo.InvariantCulture

    Dim startTime, endTime As TimeSpan

    If Not TimeSpan.TryParseExact(TextBox1.Text, "hh\:mm", cul, startTime) Then
        TextBox1.Focus()
        MsgBox("正しい開始時間を入れてください", MsgBoxStyle.Critical)
        Return
    End If
    If Not TimeSpan.TryParseExact(TextBox2.Text, "hh\:mm", cul, endTime) Then
        TextBox2.Focus()
        MsgBox("正しい終了時間を入れてください", MsgBoxStyle.Critical)
        Return
    End If

    '-----> 仕様A
    ' 22:00〜05:00 を 22:00〜26:00 とみなす
    'If startTime > endTime Then
    '    endTime += New TimeSpan(24, 0, 0)
    'End If
    '<----- 仕様A

    '-----> 仕様B
    ' 終了時刻22:00〜05:00 を許可せず
    ' 終了時刻22:00〜00:00 は許可する
    If endTime = TimeSpan.Zero Then
        endTime = New TimeSpan(24, 0, 0)
    End If
    If startTime > endTime Then
        TextBox2.Focus()
        MsgBox("終了時間が開始時間より過去になっています。" & _
               vbCrLf & "時刻の修正をしてください。", vbCritical)
        Return
    End If
    '<----- 仕様B

    Dim span = endTime - startTime
    MsgBox(String.Format("経過時間={0}分間({1:%d}日と{1:%h}時間{1:%m}分)", _
                         span.TotalMinutes, span), MsgBoxStyle.Information)
End Sub

引用返信 編集キー/
■72926 / inTopicNo.3)  Re[1]: 文字列型の時刻を日付型へ変換ができない
□投稿者/ とっちゃん (253回)-(2014/08/01(Fri) 15:16:18)
とっちゃん さんの Web サイト
No72912 (nkane さん) に返信

> テキストボックスに開始時間と終了時間を入力して、何分経過しているかの計算をする箇所で、
> 終了時間を00:00と入力した場合、24:00に変換する処理がうまくできません。
>
開始と終了が同じ時間を指している場合が考慮されていないようです。

開始と終了がそれぞれ 00:00 だった場合、
開始と終了が同じだが、00:00 ではない場合

それぞれどうなるのでしょうか?


引用返信 編集キー/
■72927 / inTopicNo.4)  Re[2]: 文字列型の時刻を日付型へ変換ができない
□投稿者/ nkane (3回)-(2014/08/01(Fri) 15:24:44)
魔界の仮面弁士様

ご回答、誠にありがとうございます。

仕様を記載せず、申し訳ありませんでした。

仕様として、00:00〜24:00までの期間での時間数を算出するため、「深夜22時から明朝5時まで」のケースだと例えるなら
8月1日 22:00〜24:00
8月2日 00:00〜05:00
という2回に分けて算出します。

どうやら、24:00というのが日付型として認識されないようなので、00:00と入力された場合は23:59として
何分経過したかを算出後に1分だけを数値型にして加算する方法で下記のコードを組んでみました。

            '開始時間と終了時間の値を取得
            Dim starttime1, endtime1 As DateTime
            Dim timeflag As Integer '終了時刻を00:00と入力した場合の判定フラグ

            starttime1 = txtStartHour1.Text.ToString() & ":" & txtStartMinutes1.Text.ToString()
            endtime1 = txtEndHour1.Text.ToString() & ":" & txtEndMinutes1.Text.ToString()

            '24:00は日付型として認識されないため、23:59とし、
            '酸素量の計算時にトータル分数に1を足すこととする。
            If endtime1 = "00:00" Then
                endtime1 = "23:59"
                timeflag = 1
            Else
                timeflag = 0
            End If

            '終了時間と開始時間の差を計算
            Dim jikan As TimeSpan
            jikan = endtime1.Subtract(starttime1)

            '時刻の差がマイナスの値の場合
            If jikan.TotalMinutes < 0 Then

                MsgBox("終了時間が開始時間より過去になっています。" & vbCrLf & "時刻の修正をしてください。", vbCritical)
                txtStartHour1.Focus()

            Else

                '分に変換した時間と流量の積を算出
                Dim total As Integer

                If timeflag = 0 Then
                    '終了時間が00:00以外であった場合の計算方法
                    total = Int(jikan.TotalMinutes) * Int(txtRyuryo1.Text)
                Else
                    '終了時間が00:00であった場合の計算方法
                    total = Int(jikan.TotalMinutes) + 1
                    total = total * Int(txtRyuryo1.Text)
                End If

                txtTotal1.Text = total

            End If

この考え方より良い方法があればご教示をお願いいたします。
Timespanを活用すればもっと良い方法がありそうな気がしますが、全く思いつきません・・・

引用返信 編集キー/
■72930 / inTopicNo.5)  Re[3]: 文字列型の時刻を日付型へ変換ができない
□投稿者/ shu (603回)-(2014/08/01(Fri) 17:03:29)
No72927 (nkane さん) に返信
> 仕様として、00:00〜24:00までの期間での時間数を算出するため、「深夜22時から明朝5時まで」のケースだと例えるなら
> 8月1日 22:00〜24:00
> 8月2日 00:00〜05:00
> という2回に分けて算出します。
>
内部情報として
この例なら
2014/8/1 22:00:00 〜 2014/8/2 05:00:00
という情報として保存するようにして
表示上終了時刻に24:00の表記が必要なのであればそのときに変換して表示されると
よいのではないでしょうか?
入力時の24:00を認めるならそのときも入力内容を判断して次の日の00:00として扱うように
するとよいと思います。

引用返信 編集キー/
■72931 / inTopicNo.6)  Re[3]: 文字列型の時刻を日付型へ変換ができない
□投稿者/ 魔界の仮面弁士 (66回)-(2014/08/01(Fri) 17:08:28)
2014/08/01(Fri) 17:27:55 編集(投稿者)

No72927 (nkane さん) に返信
> Dim starttime1, endtime1 As DateTime
> starttime1 = txtStartHour1.Text.ToString() & ":" & txtStartMinutes1.Text.ToString()

Date 型の変数に、String 型の値を放り込んではいけません。

暗黙の型変換に頼るのではなく、代入式の左辺と右辺とで、
データ型を一致させるクセをつけておきましょう。

時刻情報を扱うなら、
 dt = #23:59#   '「dt = #11:59:00 PM#」
 dt = TimeSerial(23, 59, 0)
 dt = New DateTime(1, 1, 1, 23, 59, 0, 0)
などと書けます。
これらは、いずれも「『西暦1年1月1日』の23時59分0秒ジャスト」を意味します。

ちなみに、
 span = New TimeSpan(0, 23, 59, 0, 0)
は、「0日と23時間59分0秒ジャスト」です。
Date 型と TimeSpan 型の使い分けに注意しましょう。


> 8月1日 22:00〜24:00

「日付部」を持つデータであれば、西暦も伴わせて
 Dim dt1 As New DateTime(2000, 8, 1, 22, 0, 0, 0)
などと管理すればよいかと。

日付部を持たず、「時間間隔」のみを求めるプログラムだとしたら、
使うべきは TimeSpan であって、無理に DateTime 型を使う必要は
無いかと思います。


まぁ、とりあえずは、TimeSerial 関数を使うのが楽かもしれません。
TimeSerial 関数なら、「24時0分」や「23時60分」といった
通常の時刻の範囲外の値も受け付けますから。

24時以降の日付は翌日以降の日時として返されますが、
「今日の24時」と「明日の0時」は同じ時刻ですので、
今回の目的である『経過時間』の算出には支障無いでしょう。


> どうやら、24:00というのが日付型として認識されないようなので、
そもそも、VB の Date型(System.DateTime構造体)というのは、
「日付と時刻」を扱うための型です。
時刻部だけを保持することは出来ず、日付部の情報を必ず伴います。

もしも DateTime 型の値を、「日付部だけ」「時刻部だけ」で扱う必要がある場合は、
  dt.Date …… 日付部のみを返す。(時刻部が0時0分ジャストな DateTime 型)
  dt.TimeOfDay …… 時刻部のみを返す。(日数部が0日な TimeSpan型)
を併用することもできます。


いずれにせよ、Date型(DateTime型)で時刻を扱う場合には、
それが「何月何日時点の時刻情報なのか」を意識せねばなりません。


たとえば、
 dt = DateTime.Parse("23:59")
とした場合、「『本日』の23時59分0秒ジャスト」を意味します。

つまり上記の処理は、実行した日付によって、結果が異なってしまうわけです。
深夜帯に、日またぎでこのプログラムを実行する場合は要注意ですね。


> 00:00と入力された場合は23:59として
「何日の23時59分なのか」を意識して処理してみてください。
1月1日の24時は、1月2日の0時ですよね。


下記はすべて、「『西暦1年1月2日』の0時0分0秒ジャスト」を意味します。
 dt2 = #00:00#.AddDays(1.0)
 dt2 = #23:59#.AddMinutes(1.0)
 dt2 = TimeSerial(24, 0, 0)

2 つの日付型の差を求める場合、
 Dim span As TimeSpan = dt2 - dt1
で算出できます。dt2.Subtract(dt1) でも良いですが。


この後は、TimeSpan 型のプロパティを使っていけば OK です。
 span.TotalDays
 span.TotalHours
 span.TotalMinutes

 span.Days
 span.Hours
 span.Minutes
などですね。何分経過したのかを見るなら、TotalMinutes です。
引用返信 編集キー/
■72932 / inTopicNo.7)  Re[2]: 文字列型の時刻を日付型へ変換ができない
□投稿者/ nkane (4回)-(2014/08/01(Fri) 17:46:08)
とっちゃん 様

ご回答、ありがとうございます。

開始時間と終了時間が同じ場合は、0分とみなします。
ただし、00:00〜00:00の場合は24時間*60分として計算します。
(00:00〜24:00として考えます)
引用返信 編集キー/
■72933 / inTopicNo.8)  Re[4]: 文字列型の時刻を日付型へ変換ができない
□投稿者/ nkane (5回)-(2014/08/01(Fri) 17:49:37)
No72930 (shu さん) に返信
> ■No72927 (nkane さん) に返信
>>仕様として、00:00〜24:00までの期間での時間数を算出するため、「深夜22時から明朝5時まで」のケースだと例えるなら
>>8月1日 22:00〜24:00
>>8月2日 00:00〜05:00
>>という2回に分けて算出します。
>>
> 内部情報として
> この例なら
> 2014/8/1 22:00:00 〜 2014/8/2 05:00:00
> という情報として保存するようにして
> 表示上終了時刻に24:00の表記が必要なのであればそのときに変換して表示されると
> よいのではないでしょうか?
> 入力時の24:00を認めるならそのときも入力内容を判断して次の日の00:00として扱うように
> するとよいと思います。
>

shu 様

ご回答、ありがとうございます。
仕様としては1日分だけの分数を計算したいので、一度24:00で終了とします。
日付の情報は扱わず、時刻だけで計算するので、紛らわしい例を示してしまい申し訳ありませんでした。
引用返信 編集キー/
■72934 / inTopicNo.9)  Re[4]: 文字列型の時刻を日付型へ変換ができない
□投稿者/ nkane (6回)-(2014/08/01(Fri) 17:54:24)
魔界の仮面弁士 様

ご回答、ありがとうございます。

いろいろと詳しく教えていただき、誠にありがとうございました。

データの型について基本的に誤っている点から見直して、作り直してみます。
ご教示頂いた内容を参考にさせていただきながら作りつつ、他の業務もこなしながらとなると、
もう少し時間がかかりますので、報告は今しばらくお待ちいただきますようお願いいたします。

せっかく教えていただいたのに、時間がかかってしまい申し訳ありません。

引用返信 編集キー/
■72935 / inTopicNo.10)  Re[3]: 文字列型の時刻を日付型へ変換ができない
□投稿者/ 魔界の仮面弁士 (67回)-(2014/08/01(Fri) 18:40:24)
No72932 (nkane さん) に返信
> 開始時間と終了時間が同じ場合は、0分とみなします。
> ただし、00:00〜00:00の場合は24時間*60分として計算します。
> (00:00〜24:00として考えます)

終了時刻の 00:00 は、常に 24:00 相当とする仕様なのですね?
24:00〜24:00という入力もしないでしょうし、
仕様が明確になっているのであれば、問題は無いと思います。


もし、0分と24時間とを区別させるのであれば、
 開始時刻は、"00:00"〜"23:59" の範囲で入力させる
 終了時刻は、"00:00"〜"24:00" の範囲で入力させる
という手もありますね。


No72933 (nkane さん) に返信
> 日付の情報は扱わず、時刻だけで計算するので、紛らわしい例を示してしまい申し訳ありませんでした。
何分経過したのかを調べるだけならば、
「DateTime 型」や「TimeSpan 型」を使うことなく、
自前で算出しても良いと思います。

 '「00:00からの経過分数」に変換する
 Dim intStart As Integer = CInt(txtStartHour1.Text) * 60 + CInt(txtStartMinutes1.Text)
 Dim intEnd As Integer = CInt(txtEndHour1.Text) * 60 + CInt(txtEndMinutes1.Text)

 '終了側の00:00は、24:00相当とする
 If intEnd = 0 Then
  intEnd = 1440 '= 24 * 60
 End If

 '開始時刻≦終了時刻で無いなら警告
 If intStart > intEnd Then
  txtStartHour1.Focus()
  MsgBox("過去エラー", vbCritical)
  Return
 End If

 '何分経過しているかの計算
 Dim totalMinutes As Integer = intEnd - intStart
 txtTotal1.Text = CStr(totalMinutes)



なお、テキストボックスの数値入力チェックまでも必要な場合は、
代わりに NumericUpDown を使ったり、DateTimePicker の時刻入力モードで
入力させるという選択肢もあります。


No72934 (nkane さん) に返信
> データの型について基本的に誤っている点から見直して、作り直してみます。
「Option Strict On」モードで動作するのが望ましいです。
そうすれば、日付型に文字列を代入するような「暗黙の型変換」を防げます。


さらに言えば、『txtStartHour1.Text.ToString()』の ToString も、
文字列型を無加工で文字列型に変換しているだけで、意味がありません。

txtStartHour1.Text
txtStartHour1.Text.ToString()
txtStartHour1.Text.ToString().ToString()
txtStartHour1.Text.ToString().ToString().ToString()

これらは全部同じ値になりますよね。
引用返信 編集キー/
■72966 / inTopicNo.11)  Re[4]: 文字列型の時刻を日付型へ変換ができない
□投稿者/ nkane (8回)-(2014/08/05(Tue) 15:17:59)
No72935 (魔界の仮面弁士 さん) に返信
このたびは、いろいろ丁寧に教えていただき、誠にありがとうございました。
教えていただいた方法を元に、目的とする形に仕上げることができました。

> 「Option Strict On」モードで動作するのが望ましいです。
> そうすれば、日付型に文字列を代入するような「暗黙の型変換」を防げます。
この「Option Strict On」モードのおかげで、かなり型に誤りがあることがわかり、
大変勉強になりました。
時刻にこだわらず、教えていただいたような整数でシンプルに計算する方法には感動しました。

以下、抜粋ではありますがメインとなったコードを記載します。


    '計算ボタンをクリック
    Private Sub btnKeisan1_Click(sender As Object, e As EventArgs) Handles btnKeisan1.Click
        If txtRyuryo1.Text = "" Then

            MsgBox("流量を入力してください。", vbCritical)
            txtRyuryo1.Focus()

        Else

            Dim intStart1 As Integer = CInt(txtStartHour1.Text) * 60 + CInt(txtStartMinutes1.Text)
            Dim intEnd1 As Integer = CInt(txtEndHour1.Text) * 60 + CInt(txtEndMinutes1.Text)

            '終了側の00:00は、24:00相当とする
            If intEnd1 = 0 Then
                intEnd1 = 1440 '= 24 * 60
            End If

            '開始時刻≦終了時刻で無いなら警告
            If intStart1 > intEnd1 Then
                txtStartHour1.Focus()
                MsgBox("終了時間が開始時間より過去になっています。" & vbCrLf & _
                       "時刻の修正をしてください。", vbCritical)
                Return
            End If

            '何分経過しているかの計算
            Dim totalMinutes1 As Integer = intEnd1 - intStart1

            '経過した分数と流量の積を算出
            Dim total1 As Decimal

            If chkJinko1.Checked = False Then
                total1 = CInt(totalMinutes1) * CInt(txtRyuryo1.Text)
            Else
                If txtO2noudo1.Text = "" Then
                    MsgBox("酸素濃度を入力してください。", vbCritical)
                    txtO2noudo1.Focus()
                    Return
                End If
                '数値が20以上100以内であるかのチェック
                If 20 <= CInt(txtO2noudo1.Text) And CInt(txtO2noudo1.Text) <= 100 Then
                    txtO2noudo1.Text = String.Format("{00:000}", CInt(txtO2noudo1.Text))
                    Dim O2 As Decimal
                    O2 = CDec(txtO2noudo1.Text) / 100
                    total1 = CInt(totalMinutes1) * CInt(txtRyuryo1.Text) * O2
                    '小数点第二位で四捨五入
                    total1 = CDec(Math.Round(total1, 1, MidpointRounding.AwayFromZero))
                Else
                    MsgBox("酸素濃度の値が不正です。" & vbCrLf & "数値は20〜100で入力してください。", vbCritical)
                    txtO2noudo1.Text = ""
                    txtO2noudo1.Focus()
                    Return
                End If
            End If

            txtTotal1.Text = CStr(total1)

            '流量の累計を行う。
            '総合計が空白(1回目の計算)ならば総合計は1回目の合計を入力
            If txtGrandTotal1.Text = "" Then
                txtGrandTotal1.Text = CStr(total1)

                '次の入力の為、終了時間を次回開始時間とし、流量をリセットする。
                '終了時間が00:00であった場合、すべての値をクリアにしてフォーカスは開始時間にする
                '(00:00なら次の日の計算が始まるため、開始時間からの入力となる)
                If intEnd1 = 1440 Then
                    MsgBox("この日の総計は" & total1 & "Lです。" & vbCrLf & _
                           "OKを押すと数値がクリアされます。")
                    txtStartHour1.Text = "00"
                    txtStartMinutes1.Text = "00"
                    txtEndHour1.Text = "00"
                    txtEndMinutes1.Text = "00"
                    txtRyuryo1.Text = ""
                    txtTotal1.Text = ""
                    txtGrandTotal1.Text = ""
                    chkJinko1.Checked = False
                    txtO2noudo1.Text = ""
                    txtO2noudo1.ReadOnly = True
                    txtStartHour1.Focus()
                Else
                    txtStartHour1.Text = txtEndHour1.Text
                    txtStartMinutes1.Text = txtEndMinutes1.Text
                    txtRyuryo1.Text = ""
                    chkJinko1.Checked = False
                    txtO2noudo1.Text = ""
                    txtO2noudo1.ReadOnly = True
                    txtEndHour1.Focus()
                End If

            Else

                'ここからは2回目以降の計算となる。
                '2回目以降の計算は合計+総合計とする。
                Dim grandtotal1 As Decimal
                grandtotal1 = CDec(txtGrandTotal1.Text)
                txtGrandTotal1.Text = CStr(total1 + grandtotal1)

                '次の入力の為、終了時間を次回開始時間とし、流量をリセットする。
                'なお、終了時間が00:00であった場合、すべての値をクリアにしてフォーカスは開始時間にする
                '(00:00なら次の日の計算が始まるため、開始時間からの入力となるため)
                If intEnd1 = 1440 Then
                    MsgBox("この日の総計は" & txtGrandTotal1.Text & "Lです。" & vbCrLf & _
                           "OKを押すと数値がクリアされます。")
                    txtStartHour1.Text = "00"
                    txtStartMinutes1.Text = "00"
                    txtEndHour1.Text = "00"
                    txtEndMinutes1.Text = "00"
                    txtRyuryo1.Text = ""
                    txtTotal1.Text = ""
                    txtGrandTotal1.Text = ""
                    chkJinko1.Checked = False
                    txtO2noudo1.Text = ""
                    txtO2noudo1.ReadOnly = True
                    txtStartHour1.Focus()
                Else
                    txtStartHour1.Text = txtEndHour1.Text
                    txtStartMinutes1.Text = txtEndMinutes1.Text
                    txtRyuryo1.Text = ""
                    chkJinko1.Checked = False
                    txtO2noudo1.Text = ""
                    txtO2noudo1.ReadOnly = True
                    txtEndHour1.Focus()
                End If

            End If

        End If

    End Sub

魔界の仮面弁士様には本当に感謝しきれないほど、お世話になりました。
shu様、とっちゃん様にもお世話になりました。

これからもアプリを作っていこうと思いますが、また躓くこともありますので
自力で調べてもわからない時は、またこちらでお世話になります。

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

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -