| ■17623 / ) |
Re[3]: Excelマクロにて小数部を求めたい |
□投稿者/ 萩泉 (2回)-(2008/04/28(Mon) 14:22:42)
|
■No17614 (片桐 さん) に返信 > 実際には、日付時間はセルの表示方法を変えないと「シリアル値」と呼ばれる、 > 一見すると数値に見えるもので表示されてしまうことがあるので、数値と誤解しがちですが、数値で計算するととんでもなく大変です。 シリアル値とは、たとえば"7:40"と入力した際に、表示を標準にすると見える"0.3194444"のことでしょうか。 "7:40"が60進だとしたら、10進で表示されたものが"0.3194444"だと思っていたのですが…。 数値で計算した後にシリアル値に変換、とあるのですが、数値とシリアル値の違いは何でしょう?
> 週はじめの日付と終わりの日付の間の日数は、日付期間差を求める関数で計算 これは多分、表の入力に日付(yy/mm/dd)がないので出来ません。
(既に使われている勤務表のエクセルがあり、すべて手動(計算)入力では誤りが出るということで、 現在私がマクロを付け加えているという現状なので、あまり大幅な変更を加えられません。 表の構造を簡易的に示したものを下記とします。
A| B | C | D | E | F | G ------------------------------------------------------------------------------------------------------ 日|曜日| 出 | 退 | 日勤 | 週勤 | 標準週勤 ------------------------------------------------------------------------------------------------------ 1| 月 |09:00|17:40|"=(休憩始-C1)+(B1-休憩終)"| | --|----|-----|-----|--------------------------| | 2| 火 |09:30|18:30|"=(休憩始-C2)+(B2-休憩終)"|"=int((D1+D5)*24/1)+mod((D1+D5)*24,1)*60/100"|"=7:40*5" --|----|-----|-----|--------------------------| HH.MM | 3| 水 |09:10|20:30|"=(休憩始-C3)+(B3-休憩終)"| | ----------------------------------------------| |
> 週の標準勤務時間は、その日数×時間(数値)にしてから、シリアル値に変換 > で、処理できると思います。 HH:MMの形式で表示すると、24時間ごとに0に戻ってしまうので困るのですが…。 そういう方法ではないのでしょうか?今ひとつ理解が完全でないようです。
■No17617 (やじゅ さん) に返信 > 小数部を切り捨てないMod関数 Currency型は適当なものに変更してください > Public Function fmod(ByVal a As Currency, ByVal b As Currency) As Currency > fmod = a - Int(a / b) * b > End Function これは、、、わざわざ作ってくださったのでしょうか、ありがとうございます。 ひとまずこちらを使って実行してみます。
|
|