質問: Excel VBA でアプリケーションを作成しています。 あるサイトの閲覧時間の平均を出したいのですが、例えば、7日分の閲覧時間をData型変数に加算していって、それを7日分の平均で割るみたいな計算をするのはどうしたらいいのでしょう? 日付型に対して、加算と減算はあるのですが、掛け算、割り算はないですよね。。。
回答: VBAでの日付型は 1900年01月01日00時00分00秒からの経過分を表すシリアル値です。 整数部が日数で 小数部が時分秒です。 平均を出すため、各日の閲覧時間を算出するのに下記で算出できます。 ``` Dim Duration As Single Dim StartDateTime As Date Dim EndDateTime As Date Duration = EndDateTime - StartDateTime ``` 各算出時間を合計し、日数で割れば平均が出来ます。 但し、時分秒が小数になっていますので、 利用の仕方によっては下記の様に整数化が必要です。 ``` Dim valAve As Single valAve = #2:03:18 AM# ' 平均が 2時間3分18秒 の例 Dim valHours As Integer Dim valMinutes As Integer Dim valSeconds As Integer valHours = Hour(valAve) ' Int(valAve * 24) valMinutes = Minute(valAve) ' Int((valAve * 24 - valHours) * 60) valSeconds = Second(valAve) ' Int((((valAve * 24 - valHours) * 60) - valMinutes) * 60) ``` コメントにしている部分は冗長ですが シリアル値を自分で計算する場合の計算方法です。 以上、参考になりますでしょうか?