Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11994 / 13645 ツリー ←次へ | 前へ→

【12925】秒数について 中2のVBA通 04/4/19(月) 20:06 質問
【12929】Re:秒数について shousuke 04/4/19(月) 21:01 回答
【12936】Re:秒数について ichinose 04/4/19(月) 21:52 発言
【12938】Re:秒数について 中2のVBA通 04/4/19(月) 22:51 お礼
【12939】Re:秒数について ni 04/4/20(火) 9:11 発言

【12925】秒数について
質問  中2のVBA通  - 04/4/19(月) 20:06 -

引用なし
パスワード
   はじめまして。中2のVBA通です。
私は、VBAを初めて5ヶ月、SUBプロシージャーやActiveXコントロールなど、いろいろ自分なりにがんばっていきました。しかし、解決できないことが一つだけあります。それは
 「 1/10 や、それより小さいの秒数」
 を使うことです。
secondの内部処理形式は整数形(integer)なので、わり算はできません。
また、timevalueも内部処理形式は整数形なので、同じくわり算できません。
なにか特別な参照設定をしなければいけないのかもしれませんが、私にはさっぱりワカリマセン。

誰か知っている人は教えてください。

【12929】Re:秒数について
回答  shousuke WEB  - 04/4/19(月) 21:01 -

引用なし
パスワード
   以下はヘルプトピックの内容です。
Second 関数
時間の秒を表す 0〜59 の範囲の整数を表すバリアント型 (内部処理形式 Integer の Variant) の値を返します。

構文
Second(time)

引数 time は必ず指定します。引数 time には、時間の秒を表すバリアント型 (Variant) の値、数式、文字列式、またはこれらを組み合わせた値を指定します。引数 time が 有効な値を含まない場合は、Null 値を返します。

とある通り、Variantを指定しないと扱えません。
ただし、エクセルで1/10まで計算するのは荷が重いような気がします。
結果だけを処理するのであれば良いでしょうが、タイマーの様な物を
作るのであれば別の方法を考えた方が良いでしょう。

【12936】Re:秒数について
発言  ichinose  - 04/4/19(月) 21:52 -

引用なし
パスワード
   中2のVBA通 さん、shousukeさん、こんばんは。


>はじめまして。中2のVBA通です。
>私は、VBAを初めて5ヶ月、SUBプロシージャーやActiveXコントロールなど、いろいろ自分なりにがんばっていきました。しかし、解決できないことが一つだけあります。それは
> 「 1/10 や、それより小さいの秒数」
> を使うことです。
>secondの内部処理形式は整数形(integer)なので、わり算はできません。
>また、timevalueも内部処理形式は整数形なので、同じくわり算できません。
>なにか特別な参照設定をしなければいけないのかもしれませんが、私にはさっぱりワカリマセン。
>
>誰か知っている人は教えてください。

何をしたいかによって違ってきますが、
例えば、「13:15:16.45」なんて言う時間を表したいなら・・・、
'===================================================================
Sub time_test()
  Dim t_time As Double
  t_time = CDbl(TimeValue("13:15:16")) + CDbl(0.45 / 86400)
  MsgBox WorksheetFunction.Text(t_time, "hh:mm:ss.00")
End Sub

上の記述で86400は、一日---24時間---1440分---86400秒から出てくる数値です。

時間って、24時間を0〜1で百分率で表しているということから考えてみて下さい。

【12938】Re:秒数について
お礼  中2のVBA通  - 04/4/19(月) 22:51 -

引用なし
パスワード
   どうもありがとうございます。ありがたく参考にさせて頂きます。

【12939】Re:秒数について
発言  ni  - 04/4/20(火) 9:11 -

引用なし
パスワード
   おじゃまします

TImer関数を使えば、午前0時からの秒数が、Singleで得られます。
午前0時をまたがなければ、1秒以下の待ち時間計測などに使えます。

11994 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free