|
TOKUさん、かみちゃん さん、こんにちは。
>
>>セルA1に0.3
>>セルB1に0.3
>>セルC1に1.0
>>と入力した時にセルD1のTotalが2.0(H)と表示したいのですが、
>>うまくいきません。
>>※0.3は30分という意味です。(1.0は1時間)
>> 0.3+0.3=1.0(H)
>>
>
>こういう計算をしなければならない場合もあるんですねえ・・・。
>
>0.3を0.5に変換しなければなりませんね・・・。
>
>ユーザー定義関数にしました。
>
>関数名 : Addtime_Sp
>機能 : 時間の足し算を行う
> 小数点以下は分です つまり
> 0.3は30分という意味です、 です
>呼び出し形式 : =Addtime_Sp(a1,a2,a3,・・)
>
>例
>>セルA1に0.3
>>セルB1に0.3
>>セルC1に1.0
>>と入力した時にセルD1のTotalが2.0(H)と表示したいのですが、
>の場合、
>セルD1に
>
>「=addtime_sp(A1:C1)」
>
>又は、
>
>「=addtime_sp(A1,B1,C1)」
>
>
>ではコードです。標準モジュールに
>'===================================================
>Function Addtime_Sp(ParamArray hh()) As Double
> Addtime_Sp = 0
> For idx = LBound(hh()) To UBound(hh())
> For Each chh In hh(idx)
> Addtime_Sp = Addtime_Sp + Int(chh) + TimeSerial(0, (chh - Int(chh)) * 100, 0) * 24
> Next
> Next idx
>End Function
私、仕様、間違ってたかもしれません。
'==========================================================
Function Addtime_Sp(ParamArray hh()) As Double
Addtime_Sp = 0
adddec = 0
For idx = LBound(hh()) To UBound(hh())
For Each chh In hh(idx)
Addtime_Sp = Addtime_Sp + Int(chh)
adddec = adddec + (chh - Int(chh)) * 100
Next
Next idx
Addtime_Sp = Addtime_Sp + (adddec \ 60) + (adddec Mod 60) / 100
End Function
こっちでどうでしょうか?
|
|