[[20051007154556]] 『万桁以上の時間表示』(purewhitesnow) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『万桁以上の時間表示』(purewhitesnow)

 はじめましてこんにちは。
 さて、さっそくですがご質問があります。一応過去ログは読んだつもりです。
 時間計算及び集計作業をしているのですが、万桁以上の時間表示はできないのでしょうか?
 表示するだけでしたら文字として打ち込めばよいのですが、あくまで計算できる数字として
 算出したいのです。表示形式をいろいろといじってはみましたが、出来なかったので
 ご質問致します。


 具体的にどのような時間でしょうか。
 表示形式で [h]:mm のことでしょうか。

 (川野鮎太郎)


 確かに表示形式 [h]:mm のセルに 9999:59 と入力すると数値に
 なりますが、10000:00 と入力すると文字列になっちゃいますね。
 でも 417 と入力すれば 10008:00 となりますので、ここらあたりで
 入力を工夫されたらどうでしょうか?
(純丸)(o^-')b


 表示形式は [h]:mm です。
 時間はかなり細かい数字でして、純丸さんの方法を利用させていただくと
 かえって時間を要しまして・・・。
 やはり15000時間であるならば24で除算して手入力しかないでしょうか・・・
(purewhitesnow)


 直接入力では、9999:59:59 までしか、時刻シリアル値としては入力できません。
 純丸さんのように単純な数値として入力するか、
 または、計算した結果での表示であれば、
 71003183:59:59 (9999/12/31 23:59:59)までは、シリアル値として認識するようです。
   (TORI)

 えーっとすみません。頭が混乱してきましたので一旦整理します。
 表示はこんな感じです

        A           B          C          D           E
 1   15123:56  13451:22  12311:05  12955:49  53842:12
 2   15123.96  13451.38  12311.09  12955.83

 こんな感じでE1に合計が入るわけです。
 表示形式は1の行は全て[h]:mmになっています。
      2の行は全て標準です。
 1行のセルに手入力での時間入力を希望しているのですが、それが叶わないようなので、
 1行の各セルに =A2/24  =B2/24  =C2/24  =D2/24  =SUM(A1:D1)
 と入力して無理やり合計を算出してます。(purewhitesnow)


 やっと出けた〜。シートモジュールに下記コードをコピペ。
 A1:D1 の範囲に 10000:00 以上を入力すると、時間に修正します。
(純丸)(o^-')b

 Option Explicit

 Private Sub Worksheet_Change(ByVal Target As Range)

 On Error Resume Next

 With Target

   If .Row > 1 Then Exit Sub
   If .Column > 5 Then Exit Sub
   If .Count <> 1 Then Exit Sub
   If .Value = "" Then Exit Sub
   If Application.WorksheetFunction.IsNumber(.Value) Then Exit Sub

   Application.EnableEvents = False

  .Value = Left(.Value, Application.WorksheetFunction.Find(":", .Value) - 1) * (416 + 2 / 3) / 10000 + _
Mid(.Value, Application.WorksheetFunction.Find(":", .Value) + 1, 2) / 1440

   Application.EnableEvents = True

 End With

 End Sub


 ◆途中からで、はずしていたら、ごめんなさい!

 ◆例えば、15000:00 と直接入力すると文字になりますが、 ="8000:00"+"7000:00"  と入力すると、

  15000:00 と表示されますが!?

 ◆いかがでしょうか!
  (Maron)

 純丸さんMaronさんありがとうございました!
 Maronさんのはすぐに出来たのですが、純丸さんすみません・・・「シートモジュール」
 ってなんですか?上記のコードがマクロだというのは理解できたのですが、どこに入れて
 どうやって実行したらいいのかわかりませんです・・・(泣) 
 (purewhitesnow)

 >「シートモジュール」ってなんですか?
 ここにだけ、反応〜

 エクセルの画面の下
 \Sheet1/ \Sheet2/
    ̄ ̄ ̄      ̄ ̄ ̄
 のようになってますよね?
 そこの該当シートの部分にカーソルを持っていき、
 右クリック → コードの表示
 出てきたところに、上記コードをコピペしてみてください〜

 (キリキ)(〃⌒o⌒)b

 キリキさんありがとうございました〜
 さて、迷惑ついでにもうひとつ教えていただけないでしょうか?
 上記のコードで設定範囲を広げるにはどうやったらいいんでしょう?
 (purewhitesnow)

 設定範囲は、
 >   If .Row > 1 Then Exit Sub
 >   If .Column > 5 Then Exit Sub
 ここになります。
 Row > 1 とは、入力された行が、「1」より大きかった場合
 Exit Sub 終了しなさい。
 同じく
 Column > 5 とは、入力された列が、「5番目」の列より大きい場合
 Exit Sub 終了しなさい。
 となります。

 ここの数字をご自身で決めてみてください。
 ※そーっと修正しました・・・orz
  純丸さん、ご指摘感謝☆
 (キリキ)(〃⌒o⌒)b 


 キリキさん、フォローをありがとうございました。m(__)m
 だけど 行と列が逆、、。(そーっと)
(純丸)(o^-')b

 数式で、=SUMPRODUCT(--SUBSTITUTE(TEXT( A1:D1,"[h]:mm!/!6!0;0;0;@!/!6!0"),":"," "))/24
 とするのは、どうでしょう?                          (LOOKUP)

 成る程。このやり方ですと勝手に合計計算までしてくれるんですね・・・。
 LOOKUPさんありがとうございます。勉強になります。
 早速皆様方が教えてくださいました方法を用いまして、
 今回の資料作成に最も適したものを探し、いじってみてみます。
 迷ったり、行き詰まったりしたらまたお世話になりたいと思います。
 皆さん本当に有難うございました。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.