Excel VBA質問箱 IV

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

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


25352 / 76735 ←次へ | 前へ→

【56724】Re:時間表示についてお願いします。
質問  マクロ  - 08/7/2(水) 10:10 -

引用なし
パスワード
   ▼kanabun さん:
>▼マクロ さん:
>>累積時間(TextBox78+TextBox77)がうまく足されません。
>>TextBox76.Text = Format$(TextBox78 + TextBox77 + TextBox82, "hh:nn")
>>のようにしてみましたが、うまく足されません。
>
>いくつか原因が考えられます。
>といっても、これまでにレスしたことばかりで、繰り返しになりますが、
>
>(1)TextBoxのText は、あくまでも文字列なので
>  時刻ではありません。時間にするには、
>> t1 = TimeValue(TextBox49.Text)
> のように、文字列を数値に変換する必要があります。
>
>(2)ボタンがクリックされたら、
>>  TextBox49 = Format$(Now(), "hh:nn")
>  のように、Now()関数で取り出した現在日時を
> 「時刻だけ」TextBox に代入されていますが、
> これでは 1日を跨ぐラップタイムを計算できないわけだし、
> 日時という数値を「hh:nn」型の「文字列」に変換して、
> またそれを「時刻」という数値に再変換して時間差を計算して
> いるので、回りくどいことをしています。
>
>いまおやりになっていることを概念的にイメージで表すと
>こんな感じです。↓
>
>▼現行(うまくない)
> Button Click⇒ 文字列("hh:nn") →変数(時刻のみ)
>---------------------------------------------------------
> 【Button46】Now→ [TextBox49] → t1
> 【Button47】Now→ [TextBox50] → t2
>          [TextBox78] ← (t2 - t1)
>  [TextBox76] ← TextBox78 + TextBox77 + TextBox82 ???
>
> 【Button48】Now→ [TextBox53] → t3
> 【Button49】Now→ [TextBox54] → t4
>          [TextBox77] ← (t4- t3)
>  [TextBox76] ← TextBox78 + TextBox77 + TextBox82 ???
>---------------------------------------------------------
>
>これを 先のレス 【56642】のように変更してください。
>上と同じイメージで表すと、こんな感じです。
>▼改善案
>---------------------------------------------------------
> 【Button46】Now → t1 → [TextBox49]
> 【Button47】Now → t2 → [TextBox50]
>         (t2 - t1) →[TextBox78]
>  [TextBox76] ← (t2 - t1) + (t4 - t3) + (t6 - t5)
>
> 【Button48】Now → t3 → [TextBox53]
> 【Button49】Now → t4 → [TextBox54] 
>          (t4- t3) → [TextBox77]
>  [TextBox76] ← (t2 - t1) + (t4 - t3) + (t6 - t5)
>---------------------------------------------------------
>具体的なコードは【56642】に書いたとおりなので
>(ボタン名やTextBox名を変えるだけです)
>
>まず、プログラムの先頭で共有変数を用意しておいて、
>Option Explicit
> Private t1 As Date
> Private t2 As Date
> Private t3 As Date
> Private t4 As Date
> Private t5 As Date
> Private t6 As Date
>
>Private Sub UserForm_Initialize()
> '変数 t1〜t6 を初期化しておきます
> t1 = Now()
> t2 = t1
> t3 = t1
> t4 = t1
> t5 = t1
> t6 = t1
>End Sub
>
>CommandButton46 がClick されたとき、変数 t1に Now()時刻を、
>CommandButton47 がClick されたとき、変数 t2に Now()時刻を
>CommandButton48 がClick されたとき、変数 t3に Now()時刻を、
>CommandButton49 がClick されたとき、変数 t4に Now()時刻を
>CommandButton50 がClick されたとき、変数 t5に Now()時刻を、
>CommandButton51 がClick されたとき、変数 t6に Now()時刻を
>それぞれ格納しておいて、
>TextBox76 のトータル時間の表示は これらt1〜t6変数の合計値
>として算出表示するようにします。
>>TextBox76.Text = Format$(t2 - t1 + t4 - t3 + t6 - t5, "[h]:nn")
>
>各CommandButtonがClickされたときの t1〜t6 変数への格納と、
>TextBoxへの「時分hh:nn」表示部分は 先のレス 【56642】を参照
>して、CommandButtonの番号とTextBoxの番号をそちらの環境に合わせ
>修正してください。
>Private Sub CommandButton46_Click()
> t1 = Now()
> TextBox49.Text = Format$(t1, "hh:nn")
>End Sub
>
>Private Sub CommandButton47_Click()
> t2 = Now()
> TextBox50.Text = Format$(t2, "hh:nn")
> TextBox78.Text = Format$(t2 - t1, "hh:nn")
> TextBox76.Text = Format$(t2 - t1 + t4 - t3 + t6 - t5, "[h]:nn")
>End Sub
>以下同様、
>といった感じです。

返事が遅くなりまして、すいませんでした。
無事に動くようになりました。質問ばかりですいませんが、
TextBox76が累計時間
TextBox78、TextBox77、TextBox82が小計時間になっていますが、
小計時間と累積時間をCommandButtonでワークシートに保存するようにしていますが、ここで、TextBox78、TextBox77には時間が入っていますが、
TextBox82には未入力時にワークシートに飛ばすと、00:00とワークシート上に表示されてしまいます。00:00と表示しないようにするには何か構文を足せばよいのでしょうか・・?次から次へ質問ばかりですいませんです。
よろしくお願いいたします。

0 hits

【56630】時間表示についてお願いします。 マクロ 08/6/25(水) 23:40 質問
【56631】Re:時間表示についてお願いします。 kanabun 08/6/26(木) 0:14 発言
【56632】Re:時間表示についてお願いします。 マクロ 08/6/26(木) 0:25 お礼
【56633】Re:時間表示についてお願いします。 kanabun 08/6/26(木) 8:31 発言
【56635】Re:時間表示についてお願いします。 マクロ 08/6/26(木) 13:51 質問
【56638】Re:時間表示についてお願いします。 kanabun 08/6/26(木) 14:55 発言
【56640】Re:時間表示についてお願いします。 マクロ 08/6/26(木) 16:04 質問
【56642】Re:時間表示についてお願いします。 kanabun 08/6/26(木) 16:55 発言
【56644】Re:時間表示についてお願いします。 kanabun 08/6/26(木) 17:26 発言
【56646】Re:時間表示についてお願いします。 マクロ 08/6/26(木) 18:44 質問
【56647】Re:時間表示についてお願いします。 kanabun 08/6/26(木) 19:07 発言
【56692】Re:時間表示についてお願いします。 マクロ 08/6/30(月) 18:51 お礼
【56696】Re:時間表示についてお願いします。 kanabun 08/6/30(月) 23:08 発言
【56724】Re:時間表示についてお願いします。 マクロ 08/7/2(水) 10:10 質問
【56729】Re:時間表示についてお願いします。 kanabun 08/7/2(水) 11:26 発言
【56733】Re:時間表示についてお願いします。 kanabun 08/7/2(水) 13:54 発言
【56734】Re:時間表示についてお願いします。 VBAでメール 08/7/2(水) 13:57 質問
【56736】Re:時間表示についてお願いします。 kanabun 08/7/2(水) 15:08 回答
【56775】Re:時間表示についてお願いします。 VBAでメール 08/7/4(金) 10:16 質問
【56776】Re:時間表示についてお願いします。 kanabun 08/7/4(金) 10:45 発言
【56777】Re:時間表示についてお願いします。 kanabun 08/7/4(金) 10:50 発言
【56781】Re:時間表示についてお願いします。 VBAでメール 08/7/4(金) 14:32 質問
【56782】Re:時間表示についてお願いします。 kanabun 08/7/4(金) 14:46 発言
【56784】Re:時間表示についてお願いします。 VBAでメール 08/7/4(金) 15:16 質問
【56787】Re:時間表示についてお願いします。 放置新聞 08/7/4(金) 15:40 発言
【56788】Re:時間表示についてお願いします。 kanabun 08/7/4(金) 15:48 発言
【56810】Re:時間表示についてお願いします。 マクロ 08/7/6(日) 20:22 お礼
【56826】Re:時間表示についてお願いします。 VBA勉強中です 08/7/7(月) 17:19 質問
【56830】Re:時間表示についてお願いします。 kanabun 08/7/7(月) 18:16 発言
【56831】Re:時間表示についてお願いします。 VBA勉強中です 08/7/7(月) 18:47 お礼
【56832】Re:時間表示についてお願いします。 kanabun 08/7/7(月) 18:52 発言
【56898】Re:時間表示についてお願いします。 マクロ 08/7/10(木) 10:15 質問
【56912】Re:時間表示についてお願いします。 kanabun 08/7/10(木) 14:40 発言
【56922】Re:時間表示についてお願いします。 マクロ 08/7/10(木) 19:34 お礼

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