No.3ベストアンサー
- 回答日時:
>Debug.Print Now
必要がなかったので、考えてもみなかったのですが、確かに、
Sub Test1()
Dim myDate As Date
Dim myTime As Date
Dim ret As Double
ret = Time
MsgBox Format(ret, "hh:nn:ss.000")
End Sub
これでは、秒以下の数字は取れないようですね。確か、ワークシート側には、秒以下の表示はあったはずです。
以下のような、Win32 APIは、マニアックな世界なので、あまりお勧めしませんが、GetLocalTime を使って、以下のようにしてみたらいかがですか?実際は、秒以下そのものを用いるというよりも、自家製イベントなどに用いたりすることになるのでしょうから、その場合は、劇薬ですから、くれぐれも慎重にお使いください。
'//標準モジュール
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystem As SYSTEMTIME)
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Private sysLocalTime As SYSTEMTIME
Sub Test2()
GetLocalTime sysLocalTime
MsgBox sysLocalTime.wHour & ":" & _
sysLocalTime.wMinute & ":" & _
sysLocalTime.wSecond & ":" & _
sysLocalTime.wMilliseconds
End Sub
No.2
- 回答日時:
3.4 1/1000秒単位の時間を取得
http://www.happy2-island.com/excelsmile/smile04/ …
時間を取得するときは、VBAのTime関数(※)で取れますが、Time関数で取得できるのは1秒単位です。ゲームを作る場合には「0.02秒毎に…」や「アニメーションの間隔は1.57秒」など1/100秒単位の制御をすることが多いのでTime関数では物足りません。
こんな場合(1/1000秒を取得したい場合)は、APIのGetTickCount関数、またはtimeGetTime関数を使います。ちなみに、この関数で取得できる値はWindowsが起動してから何ミリ秒経過したかという値です。
GetTickCount関数、またはtimeGetTime関数は、どちらを使ってもほとんど同じ情報を取得できますが、推奨はGetTickCount関数です。
また、これらの関数では一応1/1000秒までの時刻を取得できますが、1/1000の位はかなりいい加減なので、基本的には1/100秒単位の時間を計るときに使うと考えてください。
--------------------------------------------------------------------------------
※Timer関数という関数で1/100単位の時間を取得できますが、日付が変わるたびに0に戻るという性質上から省略しています。なお、GetTickCount関数、またはtimeGetTime関数は、Windows起動から50日弱は0に戻りません。
GetTickCount関数を定義する
API「GetTickCount関数」または「timeGetTime関数」を使うときですが、まずはこの関数がどこにある、どんなヤツなのかなど、この関数を使うための準備(宣言)を行います。
この関数を使うときは、標準モジュールを準備し(General)(Declarations)の所へ次のように記述します。なお、標準モジュールの追加方法はエクセルスマイルの「4.マクロを書く場所/標準モジュール」をどうぞ。
'標準モジュールの(General)(Declarations)へ記述します
Declare Function GetTickCount Lib "kernel32" () As Long
Declare Function timeGetTime Lib "winmm.dll" () As Long
※このエクセルマクロは標準モジュール内へ記述するマクロです
簡単に説明すると、DeclareはDLLの中にある関数を呼び出すときに付ける物で、Functionは関数の宣言、次が関数名(GetTickCountまたはtimeGetTime)、Libで関数の居場所を指定します。居場所には、GetTickCountにはkernel32を、timeGetTimeにはwinmm.dllを指定してください。なお、これらの関数の戻り値はLong型です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) bashで15分前と現在のエポックタイムの時間を取得したい 2 2023/02/01 19:10
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) 【VBA】先月分の取得ができない理由が分かりません。 2 2022/04/24 11:16
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
format関数について
Visual Basic(VBA)
-
VisualBasic6.0のFormat関数でmSecを表示したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
VBA:小数点以下の数字を取得で...
-
Spreadの選択行の取得について
-
count(*)で取得した値をJAVAの...
-
コンボボックスにdateで取...
-
バージョンナンバーの取得
-
時間を分に変換するプログラム
-
ListView 項目の選択/選択解除...
-
VBAでActiveDirectoryのユーザ...
-
VBでインストール済みアプリケ...
-
Flexgridで選択行の列の値を取...
-
DateTimePicker
-
利用者側のMACアドレスを取得し...
-
JSP+Servletでのページングの常識
-
「Excel VBA」 Webクエリ マク...
-
VB .netにて現在時刻+1時間後...
-
データ数をカウントしたいのですが
-
PCインストール済みのアプリケ...
-
asp.netでtextboxの値を取得
-
VBA リストボックス複数選択か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
VBA:小数点以下の数字を取得で...
-
VBAでActiveDirectoryのユーザ...
-
count(*)で取得した値をJAVAの...
-
JavaScriptにおいてコンピュー...
-
Flexgridで選択行の列の値を取...
-
データ数をカウントしたいのですが
-
like演算子内に変数って使えな...
-
利用者側のMACアドレスを取得し...
-
時間を分に変換するプログラム
-
現在時刻をミリ秒まで取得
-
エクセルVBAで複数選択できるよ...
-
Spreadの選択行の取得について
-
JavaScriptでWindowsログオンID...
-
コンボボックス表示文字列を取...
-
VB .netにて現在時刻+1時間後...
-
NTPサーバから時刻を取得する
-
VBA リストボックス内の値を複...
-
VBA Shapesの座標からセル位置...
おすすめ情報