• ベストアンサー

excelで時計表示と計算のマクロ

excelで作業実績表を作成するのに開始「9:00」~終了「17:00」休憩「1:00」⇒作業時間「7:00」という計算式をつくりました(表示をユーザ定義し「h:mm」とした)。有休をとった場合は作業時間に「-7:00」と手入力をしたいのですが、表示形式のユーザ定義方法がわかりません(h:mmでは うまくいかない)。なお作業時間のサマリーにもその-7:00を入れたいのですが、それが反映できません。どなたかにお知恵をお借りしたのですが・・・

質問者が選んだベストアンサー

  • ベストアンサー
noname#194317
noname#194317
回答No.1

私も同じことをやろうとして、うまい手がなかったため、あまりスマートじゃない方法で強引に対応しました。それは「時と分を違う列に入れる」というやり方です。セルA1が時で、B1が分という感じですね。そして時が入るセルの表示形式を「## !:」とし、分の方は「00」とします。これで時のマイナス符号もそのまま表示されます。 この方法の欠点は、美しくないこと、分の部分がゼロでない場合の計算は直接できない(60で割ってから計算し、時に対して繰り上げ切り下げをする必要がある)ことですが、表示形式や桁数を自由にできるのが利点です。また、業務が午前零時を超えた場合、1日の作業であることを示すため、25:00などという表記を行う場合にも対処できます。(ちなみにExcelで25:00と入力すると、1:00に直されてしまいます)

daiskick
質問者

お礼

セルを分けるとはおもいつきませんでした。早速実行したところマイナスも表示できました。美しくないのはノープロブレムです。表示や計算ができただけでもグッドです。ありがとうございました。助かりました。

関連するQ&A

  • エクセル2000

    時間の表示形式なんですが例えば7:40を31:40と24:00を超えて表示したいのですがエクセル2000ではどのようにしたら良いのでしょうか? エクセル97ではユーザー定義でh:mmを[h]:mmにしたら良いと思うのですが2000ではこれが上手くいかないです。

  • Excelでの時間表示が4:74とか23:87になってしまいます

    Excelで所要時間の平均をAVERAGE関数を使って算出すると、4:74とか23:87とか、分のところが60を超えた数値で表示されてしまいます。セル書式の表示形式はユーザー定義の[0":"00]です。(試しに表示形式を[時刻]に変えてみると先程の4:74は23:28に変わってしまいます。)もしかして引数がh:mmで表示されているからうまく計算できないのかな、とも思うのですが、だとするとh:mmを小数点表示に変える方法がわかりません。4:74を5:14と表示させる方法を教えてください。宜しくお願いします。

  • エクセルで計算後の表示形式 

    みなさまお世話になります。 ある設備より取込んだ時間のデータが0001/38/42のような感じで取込まれています。 それを時間として計算したく[/]を「:」に置換え0001:38:42としました。 その状態で24H以上の表示をさせるために 表示形式-ユーザー定義-[h]:mm:ssとしていますが。時刻として認識されません。 そのために、RIGHT関数にて8番目より取込む形にした後。隣のセルに値のみ貼付けとしていますが、時間になりません。 貼りつけたデータを編集(F2)すると時間となってくれるのですが・・・・ どうすれば、簡単に時間表示になり計算できるようになるでしょうか?

  • 【エクセルマクロ】時間の表示形式について

    あるセルに「8:24」(表示形式はユーザー定義により、h:mm)と入力されています。 この値を「出社時間」(date型の変数)へ代入していますが、以下の2つの方法で取得できる値が異なっています。 (1)出社時間 = ActiveCell.Offset(0, -3).Value 値:8:24 (2)出社時間 = Replace(ActiveCell.Offset(0, -3).Value, " ", "0:00:00") 値:0:35 なぜこのようになるのでしょうか。 (2)の方法を用いて(1)の値を取得したいです。

  • Excel 時間の表示形式 セルと数式バーの表示を同じにしたい。

    Excel2007です 時間の表示形式について教えてください。 150時間50分を150:50と入力するとセルには150:50と表示されますが 数式バーには、1900/1/6 6:50:00と表示されます。 数式バーにも150:50と表示させる方法を教えてください。 ちなみに 表示形式は、ユーザー定義で[h]:mmとなっています。

  • Excelでの時間の計算について

    時間を1:20(1時間20分)ではなく、 80分と表示したい場合の方法を教えてください。 もしくは、その回答が載っているサイトのご紹介をお願いします。 たとえばですが、 セルA1に、勤務開始時間が、9:10と入力してあり、 セルB1に、退社時間が、10:40と入力してあるというような、 30分ごとではなく、半端な時の計算方法を知りたいです。 (暗算で、30分=0.5とできないようなときです。) この状態で、セルC1に、=B1-A1とすると、1:20と表示されますが、 これを、80と表示させたいです。 なお、セルA1と、セルB1の表示形式は、ユーザー定義で [h]:mmと指定してあります。 お分かりになる方、よろしくお願いいたします。

  • Excel時間表示について

    Excelで、時間が0:00~0:00と表示されているものを 00:00~00:00と表示し直したいです。 ユーザー定義で表示形式を、hh:mmに設定しましたが出来ませんでした。 どなたかお分かりの方がいらっしゃいましたら、ご教示お願いします。

  • EXCELでの時間計算(引き算)

    EXCELで時間計算をしたいのですが EXCELのセルって時間ではなく時刻しか入らないのでしょうか? 各セルabc・・・に時間(○○:××=○○時間××分 の意)を入れておき X=a+b+c+・・・ と計算したい。 ただしマイナスの時間も有る。 そのまま行うと24時間を過ぎると25時間は01を表示してしました。 時間ではなく時刻なのか? そこで色々試したところ プラスの時間だけなら セル書式設定で表示形式を ユーザー定義の [h]:mm にして 可能でした。 しかしマイナスの数字が入れられませんでした。 (マイナスの時刻と言うモノが存在しないから?) そもそも、セルの書式設定の表示形式のユーザー定義で設定できる形式って ヘルプかどこかに全部載っていますでしょうか? 人からもらったEXCEL表に たまに見たことも無い書式設定が書いてあることがあり 「そこで初めて知る」見たいなものがありましたので・・・ よろしくお願いいたします。 

  • エクセル 1万時間を越える際の時間計算&合計算出

    エクセルの時間の計算についての質問です。 セルの表示を「ユーザー定義」の[h]:mmにしており、 普通に時間表示はされるのですが、 10000:00時間以上を越える時間数が なぜか合計に反映されません。 セルの表示は下記のようなかんじです。 表示      (セル内) 434:00     1900/1/18 2:00:00 4859:20     1900/7/20 11:20:00 20772:00    20772:00 27790:55    27790:55 5293:20(←合計がなぜか上記上2つの合計のみしか表示されない) どうしたら正しく合計額が表示されるのでしょうか。 どなたか教えてください!

  • 休憩時間の変動を含むExcelでの作業時間計算

    こんばんは、skireです。 Excelで作業時間を計算するための表を作ろうと思っています。 そこで少々行き詰まってしまいましたのでお知恵をお貸し下さい。     A      B      C     D        E   開始時間 終了時間  居残り 作業時間 居残り作業時間 1  8:00   16:00   2 10:00   22:00  1:00 3  9:00   13:00 このD1以降のセルに休憩時間を差し引いた作業時間を自動で表示されるようにしたいです。 ですが、この休憩時間がちょっと面倒でして、 B1-A1が8:45以上なら1時間 B1-A1が6:00より多く、8:45未満の場合には45分 B1-A1が6:00以下なら休憩はなし という計算をします。 (21:00より遅くなると居残り→居残り作業時間。 21:00以降に作業をしに来た人に関しては今やると混乱しそうなので省いています。 いつかは挑戦したいのですが……) 自分で組んだ式は以下です。 D1= IF(TEXT(B1-A1,"h:mm")>"8:44",TEXT(B1-A1,"h:mm")-"1:00",IF(TEXT(B1-A1,"h:mm")>"6:00",TEXT(B1-A1,"h:mm")-"0:45",TEXT(B1-A1,"h:mm")))-TEXT(E1,"h:mm") E1=B4-"21:00" この式で、 B1-A1が6:00より多く、8:45未満の場合には45分 B1-A1が6:00以下なら休憩はなし の部分と居残り時間についてはうまくいくのですが、 8:45以上の休憩だけがどうしてもうまくいきません。 1:00マイナスされていない数字が入力されてしまいます。 小さなミスだとは思うのですが、見つけることが出来ません。 よろしくお願いします。