
今、卒研でVBを使ってよるのですが、そのプログラミングで悩んでいます。
タイマーを使って時間を取得しようと思い、パソコン画面右下の時間表示から取っているのですが、そうすると時間、分は表示できるのですが秒までは表示できません。
このやり方で秒まで表示できませんか?
違った方法でもVBを使って秒まで表示できるプログラミングがあったら教えてください。
VBを使って10分の1秒単位での時間の取得はできませんか?
できたら2つのフォームにまたがって同じタイマーを使用したいのですが、何か方法はありませんか?
すみません。
お願いします。
A 回答 (10件)
- 最新から表示
- 回答順に表示
No.10
- 回答日時:
蛇足ながら補足です。
WindowsAPIで細かい時間を取得するには
GetTickCount()と既に出ているマルチメディアタイマーが
あります。
両方とも、Windowsが起動されてからどれくらい経過したか?
をms単位で返します。
(だから現在時間を知るには役に立ちません)
一般的に正確なのはマルチメディアタイマです。
GetTickCountはWin95/98では55ms単位でしか解りません。
NTなら、マルチメディアタイマと一緒で正確です。
しかしマルチメディアタイマも
BeginTimePeriodを呼び出してからでないとそんなに正確じゃありません。
詳細はMSDNをどうぞ。
引数なしの関数で、DWORDを返すだけですから
VBからでも気軽に呼び出せます。
No.9
- 回答日時:
んとねぇ私が気にしているのは...。
もし、使い方が、『機器制御で”正確に10分の1秒”単位で時刻が欲しい』って事だと、使うべきAPIが変って来るって思っただけです。
また、10分1秒単位(100ミリ秒単位)で、時刻が欲しいって事だとGetLocalTimeよりも、Timerオブジェクトのイベントで100ミリ秒を指定してイベントを待った方がよいのかなぁって思ったのです。
後は、時刻表示を100ミリ秒単位で行うって事も考えましたが...。
っとまぁいろいろ場面が想定出来るので、まずは何に使用したいのが知りたいのですよね。
そんでぇマルチメディアタイマーとは...(ちょっと説明が長くなりますが)
通常のWindowsAPI(SetTimer()関数 - 最高で1/18秒単位)よりも高精度と制御性能(ミリ秒単位)で大枚ベントをスケジュール出来るAPI群
但し、単純に現在時刻が欲しい場合には適しません。
No.8
- 回答日時:
mnabeさまの
>精度が低くなります
・・・ご本人も10分の1秒と言っているし、そのコンピュータが正確な時間を刻んでいるとも限らないから、勘弁してくださいな。
ところでそのマルチメディアタイマーとは何者?
ってこんなところで質問しちゃっていいのかな。
No.6
- 回答日時:
haporun 様の回答への補足です。
GetLocalTime で取得出来る値は、1000分の1秒までは取得できますが、実際に動作させるパソコンの性能に依存して、100分の1秒以下の値は不正確な値になってしまします。且つ、VBで作成されたモジュールの場合には、100ミリ秒以下は精度が低くなります。
同じタイマーを使用したいとの事ですが、タイマーでイベントが欲しいとか、100ミリ秒単位に何かの機器の制御がしたいとか...なると、GetLocalTimeではちょっと処理が難しくなります。
何をしたいのかをもう少し補足下さい。
ちなみに、マルチメディアタイマーを使用すれば、VBでもある程度の精度でタイマを取得する事が出来ます。
No.5
- 回答日時:
VBだけではおそらくムリです。
APIのGetLocalTimeという関数を使うと、1000分の1秒単位で取得できます。
--------------------------------------
Public 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
Public Declare Sub GetLocalTime Lib "kernel32" Alias "GetLocalTime" (lpSystemTime As SYSTEMTIME)
--------------------------------------
を標準モジュールの最も上に貼り付けると、この関数は使えるようになります。
例:
--------------------------------------
Dim ST As SystemTime
GetLocalTime ST
MsgBox ST.wSecond + ST.wMilliseconds / 1000
--------------------------------------
などとやれば、現在の秒が1000分の1単位でわかります。
No.4
- 回答日時:
なんだかみなさん、同時に同じ質問に飛びついてしまいましたね。
運良く私が1番目だったようで。
yoshiozさん、Nowはステートメントではなく関数ですよ。
mnabeさん、mm:dd:ssでは月:日:秒になってしまうのでは?
No.2
- 回答日時:
現在の時分秒を持ってきたいだけなんですよね?
そしたらNowステートメントを使うとDate型で
今日の日付から時分秒まで返ってくるので
それを使えばいいと思います。
ためしにイミディエイトで「?Now」と
入力してEnterキーを押してみてください。
No.1
- 回答日時:
すみません、なんだかおっしゃる事が理解できないのですが。
タイマーというのはタイマーコントロール?
右下の~はタスクバーの時計?
タスクバーの時計の表示方法を変えるソフトはあります。
プログラムのソースも公開しているそうです(Cでしょうが)。
時間を取得したいだけなら、Now関数を使えばよいのでは。
Format(Now, "hh:mm:ss")などとやれば、秒まで含んだ時間の文字列が出来上がります。
何か私が見当違いなことを言っているようなら、補足ください。
参考URL:http://homepage1.nifty.com/kazubon/tclock/indexj.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ソフトウェア) OMRON PLC CP2Eのプログラム 1 2022/11/24 10:57
- Windows 10 Windows10パソコン右クリックメニューで「切り取り」と「コピー」を選択し間違わないようにしたい 3 2022/04/16 10:35
- C言語・C++・C# gettimeofday() と localtime_r() を使って現在の日時をマイクロ秒単位で表 2 2022/10/26 21:15
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- その他(IT・Webサービス) googleカレンダーについて質問です スマホ版を使っています 週表示で使用してますが 1、デフォル 1 2023/02/26 20:35
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- その他(開発・運用・管理) bashで15分前と現在のエポックタイムの時間を取得したい 2 2023/02/01 19:10
- docomo(ドコモ) 通話録音が(最初から)自動的に始まるアプリは? 7 2023/01/16 15:53
- Windows 10 パソコンの起動時、画面が黒いままのトラブルにつきまして。 4 2022/10/02 18:02
- Excel(エクセル) 出退勤管理の遅刻・早退時間について 3 2023/08/10 15:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
count(*)で取得した値をJAVAの...
-
利用者側のMACアドレスを取得し...
-
VBA:小数点以下の数字を取得で...
-
既存のアプリのsyslistview32か...
-
VBA Shapesの座標からセル位置...
-
VBAでActiveDirectoryのユーザ...
-
C#でのコンピュータ名変更につ...
-
Numlockキーを無効にしたい
-
エクセルVBAで複数選択できるよ...
-
JavaScriptにおいてコンピュー...
-
Excel VBA でログインしてい...
-
JAVA 入れ子MAPの取得時の書き...
-
エクセルVBA リストボック...
-
ASPでユーザのグループ名取得
-
VBScriptで数値にコンマを付け...
-
ExcelでNTPサーバーから時刻を...
-
VBscriptでinnerHTMLを変数に取...
-
ListView 項目の選択/選択解除...
-
タイマーオブジェクトを利用し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
VBA:小数点以下の数字を取得で...
-
利用者側のMACアドレスを取得し...
-
ListView 項目の選択/選択解除...
-
VBAでActiveDirectoryのユーザ...
-
count(*)で取得した値をJAVAの...
-
VBA Shapesの座標からセル位置...
-
NTPサーバから時刻を取得する
-
Flexgridで選択行の列の値を取...
-
like演算子内に変数って使えな...
-
JavaScriptにおいてコンピュー...
-
JavaScriptでWindowsログオンID...
-
Spreadの選択行の取得について
-
VBA リストボックス内の値を複...
-
エクセルVBAで複数選択できるよ...
-
データ数をカウントしたいのですが
-
DataGridView 複数選択で行番...
-
「Excel VBA」 Webクエリ マク...
-
ListViewで複数選択された項目...
-
VBA リストボックス複数選択か...
おすすめ情報