
http://www.excellenceweb.net/vba/api/what_window …
のページを参考にPC起動時間を取得したいのですが
サンプルは単位がミリ秒になっています。
--------------------------------------------------
Declare Function GetTickCount Lib "kernel32.dll" () As Long
Sub TEST1()
Dim Tickcount As Long
'GetTickCount関数から、起動からの時間が返される
Tickcount = GetTickCount()
MsgBox "PC起動から " & Tickcount & " ミリ秒経過しています"
End Sub
--------------------------------------------------
○時間○分○秒にしたいのですが
どうすればいいでしょうか?
Formatを使うと思うのですが
どういうコードを書けばいいのかわかりません。
ご教授よろしくお願いします。
No.6
- 回答日時:
こんなのとか
Declare Function GetTickCount Lib "kernel32.dll" () As Long
Sub TEST1X()
Dim Tickcount As Long
'GetTickCount関数から、起動からの時間が返される
Tickcount = GetTickCount() / 1000
MsgBox CLng(DateAdd("s", Tickcount, 0)) & "日と" & TimeValue(DateAdd("s", Tickcount, 0))
End Sub
No.4
- 回答日時:
GetLocalTime は時刻を返す関数ですから、時間を計算するのはかえって面倒になりますよ。
C言語の localtime 関数なら秒から時刻に変換できます。ミリ秒から変換する必要がありますが。
確かに一般に、誰でも使う機会がある機能を再発明するのはよくないとされていますが、この場合は当てはまらないでしょう。
正直に言って、プログラミングの勉強の前に小学校の算数をやり直すことをお勧めします。

No.3
- 回答日時:
GetLocalTimeじゃなくて、GetSystemTimeの誤りでした、大変失礼。
ただ、残念ながら、どちらを使っても無理みたいですねえ。
MSDNを見た限りでは、GetTickCountのミリ秒から時分秒に変換できるAPIは無いようです。
自力で変換するしかないと思います。VBの割り算は四捨五入なのでFix関数を通さないと計算結果が狂うみたいです。
とりあえず、これで出来ませんかね。因みに、Microsoft Office Excel 2007 VBAで試してます。
Declare Function GetTickCount Lib "kernel32.dll" () As Long
Type HMS
h As Long
m As Long
s As Long
End Type
Sub MS2HMS(ByRef r As HMS, ByVal tick As Long)
tick = tick / 1000
r.h = Fix(tick / 3600)
r.m = Fix((tick - (r.h * 3600)) / 60)
r.s = tick - ((r.h * 3600) + (r.m * 60))
End Sub
Sub TEST1()
Dim Tickcount As Long
Dim result As HMS
'GetTickCount関数から、起動からの時間が返される
Tickcount = GetTickCount()
MS2HMS result, Tickcount
MsgBox "PC起動から " & Tickcount & " ミリ秒経過しています"
MsgBox "" & result.h & " 時 " & result.m & " 分 " & result.s & " 秒 "
End Sub

No.2
- 回答日時:
GetTickCountじゃなくて、GetLocalTimeだったら一発で取得できて変換の必要はないと思うんですが、駄目なんですかね。
http://wisdom.sakura.ne.jp/system/winapi/win32/w …
http://msdn.microsoft.com/ja-jp/library/cc429760 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBで実行中のEXEファイルの情報...
-
アウトルックが起動しているか...
-
VBSで起動したアプリが前面表示...
-
MSペイントを画像ファイル名を...
-
常駐ソフトの作り方
-
ManagementClassが見つからない。
-
う~ん…。
-
VBAでエクセルからワードへの差...
-
A4の2枚をA3の1枚にする編集方法?
-
Accessフォームで全レコードを...
-
DLLを作成してVBAから使用する...
-
Designer.vbは直接コードをいじ...
-
■C#でブラウザを作成すること...
-
Using System.Drawing がうまく...
-
IT初心者です 仕事で、vb.netで...
-
プリンターを指定して印刷するには
-
VB.NETでDLLを読み込ませる時に...
-
accessがインストールされてい...
-
2回以上PDFをコピーや印刷がで...
-
C++初心者です。 debug asserti...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでOutlookを終了させたい Ex...
-
VBSで起動したアプリが前面表示...
-
VBSから別のVBS起動するとき変...
-
アウトルックが起動しているか...
-
Process.Startで起動したアプリ...
-
Windows上のプログラム。「予め...
-
VBで実行中のEXEファイルの情報...
-
exeファイルを実行するとすぐに...
-
ACCESS VBAで別のACCESS(mdb)を...
-
WinSCPで画像のように puttyを...
-
VBAでSeleniumからChromeを起動...
-
フォームの最前面が効かない
-
VB6で呼び出し元の情報を取得す...
-
同じIEのウィンドウで、リンク...
-
gccプログラムで複数の実行ファ...
-
アプリからVB(Form)
-
VBSでExcelのUserFormをエクス...
-
VBからExcelに書き込む方法
-
Notepad起動のイベントでEXC...
-
C# 他のアプリケーションを優先...
おすすめ情報