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

わんくま同盟

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

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


(過去ログ 35 を表示中)
■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
これは、、、わざわざ作ってくださったのでしょうか、ありがとうございます。
ひとまずこちらを使って実行してみます。
返信 編集キー/


管理者用

- Child Tree -